2
我正在學習使用C#中的文件,並且我想將Program.cs
加上其他語句寫入文件。 但我收到一個錯誤,告訴我ThrowBytesOverFlow
。拋出字節溢出
我認爲我必須將我想寫一個char
數組,然後將它編碼爲bytes
一切。
我不知道我該如何解決這個問題!
FileStream afile = new FileStream(@"..\..\Program.cs", FileMode.Open, FileAccess.Read);
byte[] byteData = new byte[afile.Length];
char[] charData = new char[afile.Length];
afile.Seek(0, SeekOrigin.Begin);
afile.Read(byteData, 0, (int)afile.Length);
Decoder d = Encoding.UTF8.GetDecoder();
d.GetChars(byteData, 0, byteData.Length, charData, 0);
Console.WriteLine(charData);
afile.Close();
byte[] bdata;
char[] cdata;
FileStream stream = new FileStream(@"..\..\My file.txt", FileMode.Create);
cdata = "Testing Text!\n".ToCharArray();
bdata = new byte[cdata.Length];
Encoder e = Encoding.UTF8.GetEncoder();
e.GetBytes(cdata, 0,cdata.Length, bdata, 0, true);
stream.Seek(0, SeekOrigin.Begin);
stream.Write(bdata, 0, bdata.Length);
byte[] bydata = new byte[charData.Length];
e.GetBytes(charData, 0, charData.Length, bydata, 0, true);
stream.Write(bydata, 0, bydata.Length);
stream.Close();
什麼是實際的錯誤信息? – SLaks
字節和字符有不同的長度。使用'Encoding.UTF8.GetString(bytes)' – SLaks
ThrowBytesOverflow聽起來像是StackOverflow的競爭對手網站。這不是一個.NET異常。 –