-1

C# で分離ストレージを使用する場合、isoFileWriter から 2 つの関数があります。誰かが と の違いを説明できますisoFileWriter.Write()isoFileWriter.WriteLine()

以下のコードを使用しています:

IsolatedStorageFile myspace = IsolatedStorageFile.GetUserStoreForApplication();
myspace.CreateDirectory("Emotions");
using (var isoFileStream = new IsolatedStorageFileStream("Emotions\\history.txt", FileMode.OpenOrCreate, myspace))
{
    using (var isoFileWriter = new StreamWriter(isoFileStream))
    {
        isoFileWriter.WriteLine();
    }
}
4

3 に答える 3

3

これはStreamWriter.WriteStreamWriter.WriteLineです。

2 つの方法の主な違いはWriteLine、ファイルに新しい行を書き込むことです。ここでWriteは、データを (改行文字なしで) 書き込むだけです。

を呼び出すisoFileWriter.WriteLine()と、新しい行がファイルに書き込まれます。WriteLineパラメータ、つまり: を渡しながら呼び出すとisoFileWriter.WriteLine("Foo")Fooその後に改行が続きます。 isoFileWriter.Write("Foo")一方、Foo改行文字なしで書くだけです。

于 2012-10-23T18:07:49.683 に答える
1

このクラスSystem.IO.StreamWriterは、特定のエンコーディングでストリームに文字を書き込むために使用されます。StreamWriterクラスを使って特定のファイルにテキストを追記したり書き込んだりして、後でライター(クラス)を制御した方が良いと思います。

構造


StreamWriter次の例を使用して、呼び出し_TextWriter先を作成することを検討してください

StreamWriter _TextWriter = new StreamWriter(Path)

次の例を使用して作成された別のStreamWriter呼び出し_TextWriter2

StreamWriter _TextWriter2 = new StreamWriter(Path, true);

お気づきかもしれませんが、StreamWritercalled_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()場合、特定のストリームに利用可能な最後の行に文字が書き込まれますが、ブール値を空白のままにするか、に設定すると、特定のファイルの内容が上書きされます。trueappendappendfalse

これが例です

次のことを考慮してください

  • ファイル名がありますD:\MyDocument.txt
  • ファイルには次の内容が含まれています

これは私の最初の行
です これは私の2番目の行です

次のコードがあります。

StreamWriter _TextWriter = new StreamWriter(@"D:\MyDocument.txt");
_TextWriter.Write("Hello");  
_TextWriter.Close(); //Save and Close the StreamWriter

何が起こると思いますか?ファイルの内容はD:\MyDocument.txt次のように変更されます

こんにちは

これは、上記のコードで追加するかどうかを指定していないためです。また、追加のデフォルト値が であるため、falseStreamWriterファイルに追加されず、ファイルは新しいコンテンツで上書きされます。

もう一つの例

次のことを考慮してください

  • ファイル名があります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 を使用できます。次に、指定した文字でファイルを追加または上書きします。

于 2012-10-23T18:46:29.953 に答える
1
Write() vs WriteLine()

テキストストリームの典型です。違いはWriteLine、テキストの後に改行を書き込むことです

iso.Write('a'); 
iso.Write('b');

出力しますab

iso.WriteLine('a'); //puts a new line after a
iso.Write('b'); //the next output will be on the same line as b

出力します

a
b
于 2012-10-23T18:08:12.180 に答える