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

     2023-04-13     251

关键词:

【中文标题】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。

【讨论】:

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

】使用一个pyaudio流进行数据读取和写入【英文标题】:Usingonepyaudiostreamforbothdatareadingandwriting【发布时间】:2019-01-1414:20:08【问题描述】:我有一个web-socket客户端,它在请求中发送音频二进制数据,并从web-socket服务器接收它们... 查看详情

java.io.pipedinputstream

...入流应连接到管道输出流。然后,管道输入流将提供任何数据字节写入管道输出流。通常,一个线程从PipedInputStream对象读取数据,而另一个线程将数据写入相应的PipedOutputStream。不建议尝试从单个线程使用两个对象,因为这可能... 查看详情

c# - 如何将文件写入内存流,压缩其中三个内存流,然后将其放入另一个内存流?

】c#-如何将文件写入内存流,压缩其中三个内存流,然后将其放入另一个内存流?【英文标题】:c#-HowcanIwriteafiletomemorystream,zipthreeofthosememorystreams,andputthatintoanothermemorystream?【发布时间】:2017-02-1914:54:32【问题描述】:首先,我... 查看详情

如何将 BIM 360 文件的内容作为文件流读取并将其写入另一个流

】如何将BIM360文件的内容作为文件流读取并将其写入另一个流【英文标题】:HowtoreadthecontentofaBIM360fileasafilestreamandwritesittoanotherstream【发布时间】:2021-10-1020:01:36【问题描述】:我正在查看此文档AutoDesk我能够从BIM360获取文件/文... 查看详情

javaio使用java输入输出流读取txt文件内数据,进行拼接后写入到另一个文件中

1packagecom.sxd.test.util;23importjava.io.BufferedReader;4importjava.io.BufferedWriter;5importjava.io.File;6importjava.io.FileInputStream;7importjava.io.FileOutputStream;8importjava.io.IOException;9im 查看详情

如何从/向流写入/读取位? (C#)

...】:你能提供更多的上下文吗?你的意思是读/写二进制数据而不是文本数据?您打算读/写什么类型的数据?你真的要写单个位(不是字节)吗?问题很清楚,他需要一次向/从流中写入或 查看详情

如何将一个流的内容写入.net 中的另一个流?

...:37:43【问题描述】:我经常遇到一个问题,我有一个充满数据的流,并且想将它的所有内容写入另一个流。所有代码示例都使用字节数组形式的缓冲区。有没有更优雅的方法?如果不是,缓冲区的理想大小是多少。哪些因素构成... 查看详情

将数据作为原始数据读取和写入流?

】将数据作为原始数据读取和写入流?【英文标题】:readingandwritingdatatostreamsasrawdata?【发布时间】:2012-06-2319:21:18【问题描述】:我通过外部附件框架打开了以下输入和输出流:session=[[EASessionalloc]initWithAccessory:accforProtocol:protoco... 查看详情

文件操作

...就需要用到C++中另一个标准库fstream,它定义了三个新的数据类型:数据类型描述ofstream该数据类型表示输出文件流,用于创建文件并向文件写入信息。ifstream该数据类型表示输入文件流,用于从文件读取信息。fstream该 查看详情

C 流:直接将数据从一个流复制到另一个流,不使用缓冲区

】C流:直接将数据从一个流复制到另一个流,不使用缓冲区【英文标题】:Cstreams:Copydatafromonestreamtoanotherdirectly,withoutusingabuffer【发布时间】:2014-01-2716:31:36【问题描述】:我想将数据从一个流复制到另一个。现在通常,我会这... 查看详情

将多个文件关联到同一个 io 完成端口,同时保持文件流顺序 c#

...个文件。每个对象都带有fileID(要写入的文件的名称)和数据块。我想使用IO完成端口(IOCP)来优 查看详情

输入输出流

流相当于一辆火车(个人理解),程序向输出流写入数据,靠这辆车运出去;又向输入流读取数据(相当于外界给你寄来了信,你来读取),读取外界输入的东西. 输出流:  程序向输出流写入数据,将程序中的数据输出到外界(显示器,打... 查看详情

使用c#处理基于比特流的数据

使用C#处理基于比特流的数据 0x00起因最近需要处理一些基于比特流的数据,计算机处理数据一般都是以byte(8bit)为单位的,使用BinaryReader读取的数据也是如此,即使读取bool型也是一个byte。不过借助于C#基础类库中提供的一... 查看详情

数据的输入与输出(代码片段)

数据的传输从控制台接收数据将数据输出到控制台读取文件数据将数据写入文件控制台、显示器——内存——硬盘文件在Java中,向文件读取或写入数据需要用到流的概念,一个流被定义为一个数据序列。输入流用于读取数据,... 查看详情

为 AWS C# S3 SDK 使用内存流而不是文件流而不将完整文件写入 S3

...建文件的代码。当我使用文件流时,它工作正常并且所有数据都存在。当我使用内存流时,文件中的一些xml数据丢失了。这是我正 查看详情

datainputstream和dataoutputstream

DataOutputStream数据输出流允许应用程序以适当方式将基本 Java 数据类型写入输出流中。然后应用程序可以使用数据输入流将数据读入。DataOutputStream数据输入流允许应用程序以与机器无关方式从底层输入流中读取基本Java数... 查看详情

java中的datainputstream和dataoutputstream的作用

...ataOutputStream的作用,怎么用呀我只知道这两个流是将基本数据类型的数据输入和输出出来,但是这有什么用呀?在程序中具体怎么用?Java中输出流分为DataInputStream(数据输入流)和DataOutputStream(数据输出流):DataOutputStream:数... 查看详情

io流:缓冲流

字节缓冲流根据流的方向,共有2个  写入数据到流中,字节缓冲输出流BufferedOutputStream  读取流中的数据,字节缓冲输入流BufferedInputStreamBufferedOutputStream:  构造方法  publicBufferedOutputStream(OutputStreamout)创建一个新的缓... 查看详情