Program.cs
私はC#でファイルを操作する方法を学んでいて、ファイルに他のステートメントを加えて書きたかったのです。しかし、私は私に言うエラーを受け取りました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();