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);
这样就对了