javascript

java

python

c#

android

c++

node.js

php

html

jquery

ios

reactjs

css

.net

git

ruby-on-rails

sql

c

ruby

string

如何在PowerShell中逐行处理文件作为流

我正在使用一些多GB的文本文件,并希望使用PowerShell对它们进行一些流处理。 这很简单,只需解析每一行并提取一些数据,然后将其存储在数据库中。

不幸的是,-LineBufferSize似乎在管道的这个阶段保持整个行集在内存中。 它的速度也非常慢,需要花费很长时间才能完全阅读。

所以我的问题是两部分:

  1. 如何让它逐行处理流,而不是将整个事物缓存在内存中? 我想避免为此目的使用几次RAM。
  2. 如何让它运行得更快? PowerShell迭代-LineBufferSize似乎比C#脚本慢100倍。

我希望我在这里做一些愚蠢的事,比如错过-LineBufferSize参数或其他东西......

trans by 2019-09-12T07:58:20Z

file - java.io.PrintWriter和java.io.BufferedWriter之间的区别?

请查看下面的代码:

// A.class
File file = new File("blah.txt");
FileWriter fileWriter = new FileWriter(file);
PrintWriter printWriter = new PrintWriter(fileWriter);

// B.class
File file = new File("blah.txt");
FileWriter fileWriter = new FileWriter(file);
BufferedWriter bWriter = new BufferedWriter(fileWriter);

这两种方法有什么区别?

什么时候应该在BufferedWriter上使用PrintWriter?

trans by 2019-09-12T04:53:53Z

如何将Reader转换为InputStream,将Writer转换为OutputStream?

是否有一种简单的方法可以避免处理文本编码问题?

trans by 2019-09-11T13:22:58Z

带输入/输出流的Java进程

我在下面有以下代码示例。 因此你可以输入一个命令到bash shell,即OutputStream,并将结果回显。 但是,在第一次阅读之后。 其他输出流不起作用?

为什么这样或者我做错了什么? 我的最终目标是创建一个Threaded计划任务,定期执行命令/ bash,以便OutputStreamInputStream必须协同工作而不会停止工作。 我也遇到了错误java.io.IOException: Broken pipe的任何想法?

谢谢。

String line;
Scanner scan = new Scanner(System.in);

Process process = Runtime.getRuntime ().exec ("/bin/bash");
OutputStream stdin = process.getOutputStream ();
InputStream stderr = process.getErrorStream ();
InputStream stdout = process.getInputStream ();

BufferedReader reader = new BufferedReader (new InputStreamReader(stdout));
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(stdin));

String input = scan.nextLine();
input += "\n";
writer.write(input);
writer.flush();

input = scan.nextLine();
input += "\n";
writer.write(input);
writer.flush();

while ((line = reader.readLine ()) != null) {
System.out.println ("Stdout: " + line);
}

input = scan.nextLine();
input += "\n";
writer.write(input);
writer.close();

while ((line = reader.readLine ()) != null) {
System.out.println ("Stdout: " + line);
}
trans by 2019-09-04T09:57:23Z

c# - “不支持给定路径的格式。”

我的Web服务中有以下代码:

string str_uploadpath = Server.MapPath("/UploadBucket/Raw/");
FileStream objfilestream = new FileStream(str_uploadpath +
                fileName, FileMode.Create, FileAccess.ReadWrite);

有人可以帮助我从代码的第2行解决此错误消息的问题。

不支持给定路径的格式。

文件夹的权限设置为对每个人的完全访问权限,它是文件夹的实际路径。

断点给了我str_uploadpath的值C:\\webprojects\\webservices\\UploadBucket\\Raw\\

这个字符串有什么问题?

trans by 2019-09-04T02:45:21Z

.net - 使用C#播放流中的音频

C#中是否有一种方法可以直接从System.IO.Stream播放音频(例如MP3),例如从WebRequest返回而不将数据临时保存到磁盘?


与NAudio的解决方案

在NAudio 1.3的帮助下,可以:

  1. 将URL中的MP3文件加载到MemoryStream中
  2. 完全加载后,将MP3数据转换为波形数据
  3. 使用NAudio的WaveOut类播放波形数据

如果能够播放半载MP3文件本来不错,但由于NAudio库设计,这似乎是不可能的。

这是完成工作的功能:

    public static void PlayMp3FromUrl(string url)
    {
        using (Stream ms = new MemoryStream())
        {
            using (Stream stream = WebRequest.Create(url)
                .GetResponse().GetResponseStream())
            {
                byte[] buffer = new byte[32768];
                int read;
                while ((read = stream.Read(buffer, 0, buffer.Length)) > 0)
                {
                    ms.Write(buffer, 0, read);
                }
            }

            ms.Position = 0;
            using (WaveStream blockAlignedStream =
                new BlockAlignReductionStream(
                    WaveFormatConversionStream.CreatePcmStream(
                        new Mp3FileReader(ms))))
            {
                using (WaveOut waveOut = new WaveOut(WaveCallbackInfo.FunctionCallback()))
                {
                    waveOut.Init(blockAlignedStream);
                    waveOut.Play();                        
                    while (waveOut.PlaybackState == PlaybackState.Playing )                        
                    {
                        System.Threading.Thread.Sleep(100);
                    }
                }
            }
        }
    }
trans by 2019-08-18T07:56:17Z

术语 - 什么是流?

编程世界中的流是什么? 我们为什么需要它?

如果可能的话,请在类比的帮助下解释。

trans by 2019-08-06T17:56:53Z

oop - Java中序列化的目的是什么?

我已经阅读了很多关于序列化的文章以及它如何如此美妙和精彩,但没有一个论点足够令人信服。 我想知道是否有人能真正告诉我通过序列化一个类我们能真正实现的目标是什么?

trans by 2019-08-04T08:46:39Z

ruby - 从本地文件或u打开IO流

我知道其他语言中的库可以采用包含本地文件路径或URL的字符串,并将其作为可读IO流打开。

在ruby中有一个简单的方法吗?

trans by 2019-07-30T22:39:43Z

c# - 有没有办法在不关闭BaseStream的情况下关闭StreamWriter?

我的根本问题是当usingStreamWriter上调用BreakAssociationWithBaseStream时,它还会处理BaseStream(与Close相同的问题)。

我有一个解决方法,但正如你所看到的,它涉及复制流。 有没有办法这样做而不复制流?

这样做的目的是将字符串(最初从数据库中读取)的内容获取到流中,因此可以由第三方组件读取该流。
注意:我无法更改第三方组件。

public System.IO.Stream CreateStream(string value)
{
    var baseStream = new System.IO.MemoryStream();
    var baseCopy = new System.IO.MemoryStream();
    using (var writer = new System.IO.StreamWriter(baseStream, System.Text.Encoding.UTF8))
    {
        writer.Write(value);
        writer.Flush();
        baseStream.WriteTo(baseCopy); 
    }
    baseCopy.Seek(0, System.IO.SeekOrigin.Begin);
    return baseCopy;
}

用作

public void Noddy()
{
    System.IO.Stream myStream = CreateStream("The contents of this string are unimportant");
    My3rdPartyComponent.ReadFromStream(myStream);
}

理想情况下,我正在寻找一种名为BreakAssociationWithBaseStream的虚构方法,例如

public System.IO.Stream CreateStream_Alternate(string value)
{
    var baseStream = new System.IO.MemoryStream();
    using (var writer = new System.IO.StreamWriter(baseStream, System.Text.Encoding.UTF8))
    {
        writer.Write(value);
        writer.Flush();
        writer.BreakAssociationWithBaseStream();
    }
    return baseStream;
}
trans by 2019-07-30T19:46:02Z

在Java流中flush()的目的是什么?

在Java中,flush()方法用于流。 但我不明白使用这种方法的目的是什么?

fin.flush();

告诉我一些建议。

trans by 2019-07-25T07:10:32Z

C#使用流

溪流对我来说有点神秘。 我不知道何时使用哪个流以及如何使用它们。 有人可以向我解释如何使用流吗?

如果我理解正确,有三种流类型:

  • Memorystream
  • Memorystream
  • Memorystream

它是否正确? 并且,例如,MemorystreamFileStream之间有什么区别?

trans by 2019-07-25T03:06:34Z

stream - 我可以将python中的stdout重定向到某种字符串缓冲区吗?

我正在使用python的BufferedReader来编写一个小的FTP客户端,但是包中的一些函数不返回字符串输出,而是打印到stdout.我想将stdout重定向到一个我将能够读取的对象 输出来自。

我知道BufferedReader可以重定向到任何常规文件中:

stdout = open("file", "a")

但我更喜欢不使用本地驱动器的方法。

我正在寻找类似于Java中的BufferedReader,可用于将缓冲区包装到流中。

trans by 2019-07-12T22:34:21Z

c# - 如何在txt fi中添加新行

我想在我的date.txt文件中添加带有文本的新行,但不是将其添加到现有的date.txt中,而是应用程序正在创建新的date.txt文件。

TextWriter tw = new StreamWriter("date.txt");

// write a line of text to the file
tw.WriteLine(DateTime.Now);

// close the stream
tw.Close();

我想打开txt文件,添加一些文本,关闭它,然后点击一下后:打开date.txt,添加文本,然后再次关闭它。

所以我可以得到:

按下按钮:打开txt - > 增加当前时间,然后关闭它。 按下另一个按钮,txt打开 - > 添加了文字"确定",或者"不行," 在同一行,然后再次关闭它。

所以我的txt文件看起来像这样:

2011-11-24 10:00:00 OK
2011-11-25 11:00:00 NOT OK

我怎样才能做到这一点? 谢谢!

trans by 2019-07-06T14:16:33Z

java - 如何从String创建InputStream?

这个问题在这里已有答案:

  • 如何在Java中将String转换为InputStreamReader?                                     6个答案

我不习惯使用Java中的流 - 如何从String创建InputStream

trans by 2019-07-03T00:43:30Z

node.js - 如何关闭可读流(结束前)?

如何关闭Node.js中的可读流?

var input = fs.createReadStream('lines.txt');

input.on('data', function(data) {
   // after closing the stream, this will not
   // be called again

   if (gotFirstLine) {
      // close this stream and continue the
      // instructions from this if
      console.log("Closed.");
   }
});

这将比以下更好:

input.on('data', function(data) {
   if (isEnded) { return; }

   if (gotFirstLine) {
      isEnded = true;
      console.log("Closed.");
   }
});

但这不会阻止阅读过程......

trans by 2019-06-18T04:35:05Z

设计模式 - 如何在社交n中实现活动流

我正在开发自己的社交网络,我还没有在网上找到用户操作流的实现示例...例如,如何过滤每个用户的操作? 如何存储动作事件? 我可以将哪种数据模型和对象模型用于操作流和自己的操作?

trans by 2019-06-02T05:07:34Z

c# - 我应该为流对象调用Close()还是Dispose()?

诸如using(),Close(),Close()等类实现了IDisposable接口。 这意味着,我们可以在这些类的对象上调用Dispose()方法。 他们还定义了一个名为publicpublic方法。现在让我困惑的是,一旦我完成了对象,我应该调用什么? 如果我同时打电话怎么办?

我目前的代码是这样的:

using (Stream responseStream = response.GetResponseStream())
{
   using (StreamReader reader = new StreamReader(responseStream))
   {
      using (StreamWriter writer = new StreamWriter(filename))
      {
         int chunkSize = 1024;
         while (!reader.EndOfStream)
         {
            char[] buffer = new char[chunkSize];
            int count = reader.Read(buffer, 0, chunkSize);
            if (count != 0)
            {
               writer.Write(buffer, 0, count);
            }
         }
         writer.Close();
      }
      reader.Close();
   }
}

如您所见,我编写了using()构造,它自动在每个对象上调用Close()方法。 但我也称之为Close()方法。 这样对吗?

请告诉我使用流对象时的最佳做法。:-)

MSDN示例不使用using()构造,并调用Close()方法:

  • 如何:使用FTP下载文件

好吗?

trans by 2019-05-31T04:18:30Z

c ++ - ifstream打开失败时如何获取错误消息

ifstream f;
f.open(fileName);

if ( f.fail() )
{
    // I need error message here, like "File not found" etc. -
    // the reason of the failure
}

如何将错误消息作为字符串?

trans by 2019-05-30T07:58:05Z

c# - 将字节数组保存到fi

这个问题在这里已有答案:

  • 可以将Byte []数组写入C#中的文件吗?                                     8个答案

我有一个字节数组(实际上是IEnumerable),我需要将它保存到包含此数据的新文件中。

我怎么做?

我找到了一些答案,告诉我如何从中创建一个MemoryStream,但仍然无法将其保存到一个全新的文件中。

trans by 2019-05-19T01:47:30Z

上一页 1 2 3 4 5 下一页 共5页