[英]StreamWriter don't writing any text to file
我写了一些代码,应该写入文件一些文本:
private static FileStream CreateFile()
{
string _fileName = "znaki.txt";
if(File.Exists(_fileName))
{
File.Delete(_fileName);
}
FileStream fs = new FileStream(_fileName, FileMode.Create, FileAccess.Write);
Console.Clear();
Console.Write("Ile znakok chcesz wygenerowac? >> ");
int lp;
lp = Convert.ToInt32(Console.ReadLine());
Random r = new Random();
StreamWriter sw = new StreamWriter(fs);
for (int i = 0; i < lp; i++)
{
Console.Clear();
Console.WriteLine(i + "/" + lp);
sw.WriteLine("jogurcik");
}
return fs;
}
此代码创建文件但不写入任何内容。 这段代码有什么问题?
在写入例程结束时关闭 StreamWriter(以及 FileStream):
sw.Close();
fs.Close();
微软:
您必须调用 Close 以确保所有数据正确写入底层 stream... 刷新 stream 不会刷新其底层编码器,除非您显式调用 Flush 或 Close。
PS 替代方法是使用有助于自动关闭和处理 IO 对象的using
语句:
using (FileStream fs = new FileStream(_fileName, FileMode.Create, FileAccess.Write))
{
...
using (StreamWriter sw = new StreamWriter(fs))
{
for (int i = 0; i < lp; i++)
{
...
sw.WriteLine("jogurcik");
}
}
}
在这种情况下,您可以省略 close call。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.