[英]Can't write to file using binarywriter
为什么这段代码不会将我的字符串写入文件:
string file = "Myfile.txt";
MemoryStream ms = new MemoryStream();
void writeToFile(string text)
{
System.Text.ASCIIEncoding encoding=new System.Text.ASCIIEncoding();
byte[] barr = encoding.GetBytes(text);
ms.Write(barr, 0, barr.Length);
using (FileStream fs = new FileStream(file, FileMode.OpenOrCreate))
{
using (BinaryWriter bw = new BinaryWriter(ms))
{
bw.Write(ms.ToArray());
}
}
}
static void Main(string[] args)
{
Program p = new Program();
p.writeToFile("Tony Test");
Console.ReadLine();
}
看看这一行:
using (BinaryWriter bw = new BinaryWriter(ms))
你正在写回MemoryStream 。 你要:
using (BinaryWriter bw = new BinaryWriter(fs))
话虽如此,这是一种非常讨厌的写入文件的方式,有各种不必要的步骤。 希望这只是尝试解决为什么其他东西不起作用的实验 - 但如果您的真实代码实际上是这样的,请详细说明您正在尝试做什么,我们可以帮助您整理它。
您正在使用MemoryStream ms进行输入和输出。 改变线
using (BinaryWriter bw = new BinaryWriter(ms))
至
using (BinaryWriter bw = new BinaryWriter(fs))
或者:
File.WriteAllText("myfile", "mytext");
你正在用最难的方式写文字。 你应该使用File.WriteAllText(如Adam所说)或附加文本方法。 如果要使用具有特殊编码的编写器,则应使用StreamWriter,因为它可以处理文本数据,您可以设置文件的编码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.