C# - 将数据写入流 + 使用另一个流读取数据

Posted

技术标签:

【中文标题】C# - 将数据写入流 + 使用另一个流读取数据【英文标题】:C# - Write Data To A Stream + Read Data With Another Stream 【发布时间】:2013-02-21 09:00:20 【问题描述】:

现在我有一个StreamWriter 和一个StreamReader,1 个包含(文本)数据的文件,至少 2 个线程。 1个线程是一个监听器并读取数据。另一个线程将内容写入流中。

我可以避免使用文件作为内存缓冲区吗?

我认为有可能从两端连接 2 个流。但不知道如何。我创建写入文件的编写器。然后我启动一个线程来创建一个阅读器,该阅读器从这个文件中读取并完成他的工作。它有效,但我想避免使用文件。


// writer
StreamWriter writer = new StreamWriter(new FileStream("text.txt", FileMode.Create, FileAccess.Write, FileShare.Read));
writer.AutoFlush = true;
// reader
StreamReader reader = new StreamReader(new FileStream("text.txt", FileMode.Open, FileAccess.Read, FileShare.ReadWrite));

【问题讨论】:

属于codereview.stackexchange.com @MikroDel 什么?我不能再问有关在 *** 上编程的问题了?我的代码没有任何问题。我只需要正确的技术。 请查看 codereview.stackexchange.com - 这是一个可以毫无问题地发布代码的地方(正如您所评论的 :))分析它并发布一些建议以使其更好 【参考方案1】:

我发布了我称为ProducerConsumerStream 的东西,它可以做到这一点。它是一个内存流,允许一个读取器和一个写入器。它是一个固定大小的循环缓冲区,允许消费者以生产者写入的速度读取。见Building a new type of stream。

【讨论】:

以上是关于C# - 将数据写入流 + 使用另一个流读取数据的主要内容,如果未能解决你的问题,请参考以下文章

使用java的输入输出流将一个文本文件的内容按行读取,每读一行就顺序添加行号,并写入到另一个文件中

使用java的输入,输出流将一个文本文件的内容按行读出,每读一行就顺序添加行号,并写入到另一个文件

java中如何从一个文件中读文件,然后把另一个文件写入所读文件,最后再储存到另一个文件中

了解下C# 文件的输入与输出

使用一个 pyaudio 流进行数据读取和写入

C# 关于写入和读取的问题