方法一:
如果不知道原文件的大小,可以这样:
FileStream fs2 = new FileStream("2.txt", FileMode.Create);
byte[] buffer = new byte[4096];//这里的大小可以设置为ReceiveBufferSize
while ((count = fs.Read(buffer, 0, buffer.Length)) != 0)
{
buffer.Initialize();//将buffer初始化,避免出现后半部不更新的情况。
string str = System.Text.Encoding.ASCII.GetString(buffer);
str = str.TrimEnd('\0');//将后面冗余的'\0'去掉
richTextBox1.Text += str;
fs2.Write(buffer,0, str.Length);//注意这里取得是str的长度而不是buffer的长度。
}
fs2.Close();
方法二:
将buffer的大小设为fs字节流同样的大小。即:
FileStream fs = File.OpenRead("1.txt");
int count = 1;
FileStream fs2 = new FileStream("2.txt", FileMode.Create);
byte[] buffer = new byte[fs.Length];
就可以解决上述问题了。
发表于 @ 2008年06月26日 05:48:09|评论(loading...)|编辑|收藏