23

C# での私のコード (asp.net MVC)

StreamWriter tw = new StreamWriter("C:\\mycode\\myapp\\logs\\log.txt");

// write a line of text to the file
tw.Write("test");

ファイルは作成されますが、空です。例外はスローされません。これまで見たことがなく、ここで立ち往生しています。デバッグ出力を書く必要があるだけです。

お知らせ下さい。

4

8 に答える 8

67

StreamWriter はデフォルトでバッファリングされます。つまり、Flush() または Close() 呼び出しを受け取るまで出力しません。

必要に応じて、 AutoFlushプロパティを設定することでこれを変更できます。それ以外の場合は、次のようにします。

StreamWriter tw = new StreamWriter("C:\\mycode\\myapp\\logs\\log.txt");

// write a line of text to the file
tw.Write("test");
tw.Close();  //or tw.Flush();
于 2012-06-13T21:59:04.040 に答える
7

洗い流すことも、閉じることも、処分することもありません。これを試して

using (StreamWriter tw = new StreamWriter(@"C:\mycode\myapp\logs\log.txt"))
{
    // write a line of text to the file
    tw.Write("test");
    tw.Flush();
}

または私の好み

using (FileStream fs = new FileStream( @"C:\mycode\myapp\logs\log.txt"
                                     , FileMode.OpenOrCreate
                                     , FileAccess.ReadWrite)           )
{
    StreamWriter tw = new StreamWriter(fs);
    tw.Write("test");
    tw.Flush();
}
于 2012-06-13T22:05:02.513 に答える
5

使用する

System.IO.File.WriteAllText(@"path\te.txt", "text");
于 2012-06-13T21:58:56.913 に答える
3
FileStream fs = new FileStream("d:\\demo.txt", FileMode.CreateNew,
                               FileAccess.Write);
StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.ASCII);
int data;

sw.Write("HelloWorld");

sw.Close();
fs.Close();
  • 問題は、 StreamWriter Object が FileStream Object の参照で作成された場合、 SW オブジェクトが Closed になるまで SW オブジェクトが常に何らかのデータを期待することです。
  • そのため、 sw.Close();を使用した後。 開いているファイルが閉じられ、出力を表示する準備が整います。
于 2016-02-10T13:30:18.063 に答える
0

代替

FileStream mystream = new FileStream("C:\\mycode\\myapp\\logs\\log.txt",    
FileMode.OpenOrCreate, FileAccess.Write);           
StreamWriter tw = new StreamWriter(mystream); 
tw.WriteLine("test");
tw.close();
于 2012-06-13T22:05:56.970 に答える
0

\nファイルを閉じるか、次のような行に追加してみてください

tw.WriteLine("test");
tw.Close();
于 2012-06-13T22:06:52.013 に答える