流编写器未创建文件

本文关键字:创建 文件 | 更新日期: 2023-09-27 18:31:37

我写了一个输出文本文件的类。它工作得很好,它完成了工作。但是我做了同样的过程,但它不起作用(文件未创建)。我觉得我错过了一些非常简单的东西——我错过了什么?

工作代码(在主方法中):

static void Main(string[] args)
    {
        Kinematics hello = new Kinematics();
        System.IO.StreamWriter file = new System.IO.StreamWriter
            ("C:/Users/myName/Documents/GoogleDrive/folder/folder/Level 3.txt");
        file.WriteLine("Time(s)'tPosition(m)'tVelocity(m/s)'tAcceleration(m/s^2)");
        //create a file to print stuff in.
        file.Close();
        //close the file.
    }

不工作代码:

class Program
{
    static void Main(string[] args)
    {
        System.IO.StreamWriter file = new System.IO.StreamWriter
           ("C:/Users/myName/Documents/GoogleDrive/folder/folder/hellooo.txt");
        file.WriteLine("Time(s)'tPosition(m)'tVelocity(m/s)'tAcceleration(m/s^2)");
        Projectile ballProjectile = new Projectile();
        ballProjectile.Level1(file);
        ballProjectile.Level2(file);
        ballProjectile.Level3(file); 
        file.Close();
    }
}
文件

路径完全相同且都是正确的,我已经仔细检查了我是否在正确的位置查找了文件。

运动学做一些计算,我用file.WriteLine();写出方法的输出。所有的写作都是在主方法中完成的。截至目前,Level1、Level2、Level3 方法都是空方法。稍后他们将运行file.WriteLine();方法。

流编写器未创建文件

file.Close()移到上方

Projectile ballProjectile = new Projectile();
ballProjectile.Level1(file);
ballProjectile.Level2(file);
ballProjectile.Level3(file); 

此外,正如评论中所建议的,StreamWriter是一次性的,所以你应该这样做:

var file = new System.IO.StreamWriter(@"C:/Users/myName/Documents/GoogleDrive/folder/folder/hellooo.txt")
using (file)
{
   file.WriteLine("Time(s)'tPosition(m)'tVelocity(m/s)'tAcceleration(m/s^2)");
}

请注意文件路径开头的@