C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[5]: StreamWriterに関して


(過去ログ 34 を表示中)

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■16355 / inTopicNo.1)  StreamWriterに関して
  
□投稿者/ kwnsh (1回)-(2008/04/03(Thu) 15:08:04)

分類:[C#] 

こんにちはkwnshと申します。
StreamWriterに関しての質問があります。
下記のようなプログラムがあります。
この時6行目でnewしたStreamWriterは
クローズする必要はないのでしょうか?

1: //ログ出力処理
2: try
3: {
4: //ファイルを開く
5: m_Logfs = new FileStream(outFileName, FileMode.Append);
6: StreamWriter swFromFile = new StreamWriter(m_Logfs, Encoding.Default);
7: TextWriter tw = TextWriter.Synchronized(swFromFile);
8:
9: tw.WriteLine(
10: DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss").PadRight(20, ' ') //時間
11: + "【" + level.ToString().PadRight(5,' ') + "】" //ログレベル
12: +" "
13: + classname //クラス名
14: + " "
15: + message //エラーメッセージ
16: );
17: tw.Flush();
18: tw.Close();
19: }
20: catch(Exception ex)
21: {
22: throw ex;
23: }

引用返信 編集キー/
■16356 / inTopicNo.2)  Re[1]: StreamWriterに関して
□投稿者/ シャノン (368回)-(2008/04/03(Thu) 15:15:45)
No16355 (kwnsh さん) に返信
> こんにちはkwnshと申します。
> StreamWriterに関しての質問があります。
> 下記のようなプログラムがあります。
> この時6行目でnewしたStreamWriterは
> クローズする必要はないのでしょうか?

StreamWriter の Close は、元になるストリームを閉じますから、m_LogFs も閉じてしまいます。
従って、m_LogFs を開き続けておく意図があるなら、StreamWriter を Close してはなりません。
引用返信 編集キー/
■16358 / inTopicNo.3)  Re[2]: StreamWriterに関して
□投稿者/ kwnsh (2回)-(2008/04/03(Thu) 15:21:34)
早急なお返事ありがとうございます。

このプログラムはログを出力するプログラムで
他の各プログラムからコールされる仕組みになっています。
なのでプログラムが終了すればStreamWriterの開き続ける必要はありません。



引用返信 編集キー/
■16363 / inTopicNo.4)  Re[3]: StreamWriterに関して
□投稿者/ なちゃ (117回)-(2008/04/03(Thu) 16:25:18)
何で同期化してるのかと、
何でキャッチしてスローし直してるのか、
気になって夜も眠れません…


引用返信 編集キー/
■16368 / inTopicNo.5)  Re[4]: StreamWriterに関して
□投稿者/ 出水 (17回)-(2008/04/03(Thu) 19:43:03)
m_Logfs = new FileStream(outFileName, FileMode.Append);
これを閉じれば他が全部閉じるはずです
IDisposable持ってるので、using使ってやればよいんじゃないかと思います

using(var Logfs = new FileStream(outFileName, FileMode.Append)){
...
}

引用返信 編集キー/
■16737 / inTopicNo.6)  Re[5]: StreamWriterに関して
□投稿者/ kwnsh (3回)-(2008/04/10(Thu) 07:40:40)
おへんじが遅くなり申し訳ありません。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -