このクラスSystem.IO.StreamWriter
は、特定のエンコーディングでストリームに文字を書き込むために使用されます。StreamWriter
クラスを使って特定のファイルにテキストを追記したり書き込んだりして、後でライター(クラス)を制御した方が良いと思います。
構造
StreamWriter
次の例を使用して、呼び出し_TextWriter
先を作成することを検討してください
StreamWriter _TextWriter = new StreamWriter(Path)
次の例を使用して作成された別のStreamWriter
呼び出し_TextWriter2
StreamWriter _TextWriter2 = new StreamWriter(Path, true);
お気づきかもしれませんが、StreamWriter
called_TextWriter2
には 2 つの引数がPath
あります。true
ここでの使用は、クラスが作成する可能性のあるファイルまたは既に存在するファイルに文字を追加true
するために使用されることをクラスに伝えるだけです。それ以外の場合、これを空白のままにするか挿入すると、ファイルが上書きされます。false
これが例です
Path
次の内容の 2 行を含むファイル名を検討してください。
これが1行
目 これが2行目
次のコードを使用すると、ドキュメント ( ) にHelloPath
となる1 行しかありません。
_TextWriter.WriteLine("Hello");
Path
次のコードを使用すると、ドキュメント ( ) に次の内容を表す3 行が作成されます。
1行
目です 2行目です
こんにちは
_TextWriter2.WriteLine("Hello");
Write()
それでは、あなたの質問に移りましょう。との違いは何ですかWriteLine()
Write() と WriteLine()
答えは簡単です。メソッドを使用すると、ブール値として設定したWrite()
場合、特定のストリームに利用可能な最後の行に文字が書き込まれますが、ブール値を空白のままにするか、に設定すると、特定のファイルの内容が上書きされます。true
append
append
false
これが例です
次のことを考慮してください
- ファイル名があります
D:\MyDocument.txt
- ファイルには次の内容が含まれています
これは私の最初の行
です これは私の2番目の行です
次のコードがあります。
StreamWriter _TextWriter = new StreamWriter(@"D:\MyDocument.txt");
_TextWriter.Write("Hello");
_TextWriter.Close(); //Save and Close the StreamWriter
何が起こると思いますか?ファイルの内容はD:\MyDocument.txt
次のように変更されます
こんにちは
これは、上記のコードで追加するかどうかを指定していないためです。また、追加のデフォルト値が であるため、false
はStreamWriter
ファイルに追加されず、ファイルは新しいコンテンツで上書きされます。
もう一つの例
次のことを考慮してください
- ファイル名があります
D:\MyDocument.txt
- ファイルには次の内容が含まれています
これは私の最初の行
です これは私の2番目の行です
次のコードがあります。
StreamWriter _TextWriter = new StreamWriter(@"D:\MyDocument.txt", true);
_TextWriter.Write("Hello");
_TextWriter.Close(); //Save and Close the StreamWriter
何が起こると思いますか?
ファイルの内容はD:\MyDocument.txt
次のように変更されます
これは私の最初の行
です これは私の2番目の行です こんにちは
Hello
ブール値をに設定したためappend
、ファイルは単語で上書きされませんでしたtrue
が、これに気付きましたか? ファイルの 2 行目が次のように変更されました。
これは私の最初の行
です これは私の2番目の行です こんにちは
これは、Hello
が利用可能な最後の行に追加されたことを意味します。これは、利用可能Write()
な最後の行にテキストを追加する which を使用したためです。
概要
したがって、これが発生したくない場合はWriteLine()
、最初にファイルの最後に行を作成する which を使用できます。次に、指定した文字でファイルを追加または上書きします。