首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C#序列化之后的对象为byte[]类型数组但是无法转换成string类型?该如何解决

2012-05-01 
C#序列化之后的对象为byte[]类型数组但是无法转换成string类型?FileStream fs new FileStream(I:\\xi.t

C#序列化之后的对象为byte[]类型数组但是无法转换成string类型?
FileStream fs = new FileStream("I:\\xi.txt", FileMode.OpenOrCreate);
  int bodySize = 64 * 1024;
  byte[] data = new byte[bodySize];
  fs.Read(data, 0, bodySize);
  fs.Close();
  string str = string.Empty;
  str = Encoding.UTF8.GetString(data, 0, data.Length);


  MessageBox.Show(str);


其中xi.txt 文件中的内容是对象序列化成byte[]数组在文件流的形式写入到里面的。
但是想把byte[]转换成string 一直为空?

请问怎么回事?

[解决办法]
楼主,要一行一行的读:
StreamReader objReader = new StreamReader("c:\\test.txt");
string sLine="";
ArrayList arrText = new ArrayList();

while (sLine != null)
{
sLine = objReader.ReadLine();
if (sLine != null)
arrText.Add(sLine);
}
objReader.Close();
[解决办法]
str = Encoding.UTF8.GetString(data, 0, data.Length);
你读出来的byte数组肯定不是UTF8编码的,而是默认编码
str = Encoding.Default.GetString(data, 0, data.Length);
这样就对了

热点排行