C# StreamWriter don';不要将任何文本写入文件

C# StreamWriter don';不要将任何文本写入文件,c#,filestream,streamwriter,C#,Filestream,Streamwriter,我写了一些代码,应该写一些文本文件: private static FileStream CreateFile() { string _fileName = "znaki.txt"; if(File.Exists(_fileName)) { File.Delete(_fileName); } FileStrea

我写了一些代码,应该写一些文本文件:

        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;
        }
private静态文件流CreateFile()
{
字符串_fileName=“znaki.txt”;
if(File.Exists(_fileName))
{
删除(_文件名);
}
FileStream fs=newfilestream(_fileName,FileMode.Create,FileAccess.Write);
Console.Clear();
Console.Write(“Ile znakok chcesz WYWAC?>>”;
int-lp;
lp=Convert.ToInt32(Console.ReadLine());
随机r=新随机();
StreamWriter sw=新StreamWriter(fs);
对于(int i=0;i
这段代码创建文件,但不写任何东西。此代码有什么问题?

在编写例程结束时关闭StreamWriter(以及FileStream):

sw.Close();
fs.Close();
:

您必须调用Close以确保正确写入所有数据 到底层流。。。除非显式调用flush或Close,否则刷新流不会刷新其底层编码器

附言。 另一种方法是使用有助于自动关闭和处置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");
        }
    }
}
使用(FileStream fs=newfilestream(_fileName,FileMode.Create,FileAccess.Write))
{
...
使用(StreamWriter sw=新StreamWriter(fs))
{ 
对于(int i=0;i
在这种情况下,您可以执行关闭呼叫

在写入例程结束时关闭StreamWriter(以及FileStream):

sw.Close();
fs.Close();
:

您必须调用Close以确保正确写入所有数据 到底层流。。。除非显式调用flush或Close,否则刷新流不会刷新其底层编码器

附言。 另一种方法是使用有助于自动关闭和处置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");
        }
    }
}
使用(FileStream fs=newfilestream(_fileName,FileMode.Create,FileAccess.Write))
{
...
使用(StreamWriter sw=新StreamWriter(fs))
{ 
对于(int i=0;i

在这种情况下,您可以执行关闭呼叫

添加了关于有助于自动关闭StreamWriter的
使用
语句的说明。添加了关于有助于自动关闭StreamWriter的
使用
语句的说明。