FileStream读取与写入乱码如何解决
用FileStream处理任何文件时(格式比如:txt、xml、doc、hex等。。),我以二进制流的方式读取出来,也就是FileStream的Read方法,读取到的数据放在一个字节数组中,然后再New一个FileStream用Write方法写到另外一个文件中去,可是写完后打开是乱码,请问怎么解决?渣渣代码如下(有点偷工减料,见谅):
C# code
private void Read_Click(object sender, EventArgs e)
{
try
{
FileStream fileRead = new FileStream("D:\\Read.doc", FileMode.Open);
FileStream fileWrite = new FileStream("D:\\Write.doc", FileMode.Append, FileAccess.Write);
if (fileRead.Read(bytRead, 0, 8) <= 0)
{
MessageBox.Show("文件已经读完");
}
fileWrite.Write(bytRead, 0, 8);
fileRead.Close();
fileWrite.Close();
}
catch (Exception exc)
{
MessageBox.Show("异常信息:"+exc.Message);
}
}
最后,我搜了网上资料都说用用StreamReader 、StreamWriter 读写。。设置编码格式,可是这两个流不是只能操作text文件吗?如果给我这个建议的请给解释。
------解决方案--------------------StreamReader 、StreamWriter是文本流读写 2进制流是BinaryWriter、BinaryReader
------解决方案--------------------http://www.csharpwin.com/csharpspace/2209.shtml
------解决方案--------------------
你这只是读了首8个字节,等于把内容截断了,出现乱码很正常,你可以用
int offset = 0;
while((offset=fileRead.Read(bytRead, 0, 8))>0)
{
fileWrite.Write(bytRead, 0, offset=);
}