2016-01-24 5 views
-1

Я написал класс, который выводит текстовый файл. Это сработало довольно хорошо, и он выполнил свою работу. Однако я сделал тот же процесс, и он не работал (файл не был создан). Я чувствую, что мне не хватает чего-то действительно простого - чего я не хватает?StreamWriter не создает файл?

Рабочий код (в основной метод):

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(); 
    } 
} 

Путь к файлам точно так же, и оба правильны, и я проверил, что Я посмотрел в нужное место для файла.

Kinematics выполняет некоторые вычисления, и я использую file.WriteLine(); для выписывания выходов методов. Все записи выполняются в основном методе. Методы Level1, Level2, Level3 на данный момент являются пустыми. Позже они будут запускать методы file.WriteLine();.

+1

StreamWriter является одноразовым. Оберните его в оператор using. https://social.msdn.microsoft.com/Forums/en-US/c50f5f11-ceda-475d-a1cb-211b8b0fe08f/streamwriter-not-writing-to-file?forum=csharplanguage – DeveloperUK

+0

Вызывается ли это исключение? – juharr

+0

Нет, не было исключений .. –

ответ

0

Перемещение 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)"); 
} 

Обратите внимание на @ на старте Путь к файлу.

+0

Я сделал; файл даже не отображается в папке, где он должен отображаться.Прокомментировал все снаряды на данный момент –

+0

Действительно странно ... вы проверили свой каталог bin? – pookie

+0

Где находится каталог bin? Использование окон –

Смежные вопросы