看下面的程序,我从一个已有文件的FileStream里读取bytes,读到buffer里转为字符串,循环,最后写到 richTextBox1.Text 和用fs2创建相同文件。
奇怪的是::为什么我用buffer的长度很小与很大时结果不一样?(都不是我想要的结果)
能详细说一下read的过程吗?buffer应该设置成多大?
FileStream fs = File.OpenRead("1.txt");
int count = 1;
byte[] buffer = new byte[4096];
FileStream fs2 = new FileStream("2.txt", FileMode.Create); ;
while (count != 0)
{
count = fs.Read(buffer, 0, buffer.Length);
string str = System.Text.Encoding.ASCII.GetString(buffer);
richTextBox1.Text += str;
fs2.Write(buffer, 0, buffer.Length);
}
fs2.Close();
--->>非常感谢大哥的回答,确实解决了,可是又有问题,如果是网络传输怎么办?不知道文件大小啊
TcpClient类有属性ReceiveBufferSize和SendBufferSize,他们与用来读取的buffer怎么协调呢?
------------------------------------------------------------------------------------------------------------------
C#中FileStream.Read方法的buffer大小不一样读取结果不一样??
1.buffer长度较小,不会一次从fs中读取所有数据。那么在倒数第二次取完byte之后,最后一次可能会出现剩余的待取字节不足buffer长度的情况,buffer只有前半部分被更新,后面剩余了倒数第二次取得的字节。所以会有冗余的字节存在buffer里面,写出来的时候相应的冗余字节也被存到文件和richText里面了。2.buffe...
C# 关于 读取图片转字节,发现数组少字节问题
1、BinaryReader.ReadBytes 2、FileStream.Read(bt, 0, Convert.ToInt32(fs.Length));3、MemoryStream.GetBuffer();图片的宽度200像素,高度是50像素。计算字节大小应该为10000 第一种:FileStream fs = new FileStream(filepath, FileMode.Open, FileAccess.Read);BinaryReader br = new BinaryReader(fs...
如何在C#中使用FileStream操作文本文件并读取内容?
最后,AddText方法是一个辅助函数,它接收一个FileStream和一个字符串作为参数,将字符串转换为字节数组,然后写入到FileStream中。
关于C#中FileStream.Read()的问题。。如下代码。。
Stream.Read(byte[] array, int offset, int count);array 表示缓冲区;offset 表示从流的当前位置(也就上面说的 Position)偏移多少个字节开始读;count 表示读取多少个字节。该方法返回的是实际上读取了多少个字节(永远小于等于 count),如果该值等于 0,说明已经到流的末尾了。读取之后,这个流的...
C# 文件读取StreamReader出错 读不出数据
首先,要看你这个zuigaofen.txt的内容是什么。还有sr.ReadLine()你只是读取了文本里的第一行。你把你txt的内容贴出来看看!
c# 如何获得文件编码格式 ,我是用streamread 读的
按照如上所说,我们可以通过读取文件头的两个字节来判断文件的编码格式,代码如下(C#代码):程序中System.Text.Encoding.Default是指操作系统的当前 ANSI 代码页的编码。public System.Text.Encoding GetFileEncodeType(string filename){ System.IO.FileStream fs = new System.IO.FileStream(filename, ...
C#中,关于流的几个疑惑,谢谢!
BufferedStream不是有缓冲区,而是本身就是缓冲区,可以用它来暂时存储其它流中的内容,然后flush进入相应的流。至于StreamReader、StreamWriter、BinaryReader和BinaryWriter,他们都是流操作器,这些都是为了方便用户往流里写数据用的。StreamReader是标准流读取器,StreamWriter是标准流写入器,BinaryReader是二...
...类的ReadAllText、WriteAllText与流Filestream的关系
我们看不到。net Framework 的源代码,但猜测ReadAllText()基本上应该也是用Filestream的read方式实现的。多一个方法就可以让你少写很多行的代码,不用处理Filestream的Dispose。这就是写library的人比较聪明之处吧。当然具体比较两个方法,ReadAllText()是一个简单的方法,你一次读出所有的内容。而直接...
C# 中 filestream的fs.Read方法,怎么把文本中的数据每一行作为一个元素...
System.IO.FileStream fs = new System.IO.FileStream("C:\\\\test.txt", System.IO.FileMode.Open);byte[] bContent = new byte[fs.Length];fs.Read(bContent, 0, bContent.Length);string txt = System.Text.Encoding.Default.GetString(bContent); \/\/获取文本 fs.Close();fs.Dispose();...
C#中文件和byte[]互换问题
]方法一:使用MemoryStream(MemoryStream的数据来自内存中缓冲区)System.IO.MemoryStream m = new System.IO.MemoryStream();System.Drawing.Bitmap bp = new System.Drawing.Bitmap(pname );bp.Save(m, System.Drawing.Imaging.ImageFormat.Jpeg);\/\/将此图像以指定的格式保存到指定的流中。