3

人の内容をファイルに書き込む

FirstName:Abcd

SecondName:Tsfsdfs

このために私はサンプルアプリケーションを書きました

namespace BinaryStream
{
    class Program
    {
        static void Main(string[] args)
        {
            StreamWriter binWriter = new StreamWriter(@"c:\happybirthday.txt");
            string name = "Sachin";
            string secondname = "tendulkar";
            string wishes = "happy birthday";

            string firstname = string.Format("FirstName: {0} \n", name);
            binWriter.Write(firstname);
            string sn = string.Format("SecondName: {0} \n", secondname);
            binWriter.Write(sn);
            binWriter.Close();          
        }
    }
}

メモ帳で内容を開くと、次の行に文字列が表示されません。その理由は何ですか。フォーマット部分は正しいですか?

4

5 に答える 5

6

WriteではなくWriteLineを使用する必要があります。Writeは、行の終わりにlinefeed\crを配置しません。テキストに\nを配置すると、改行のみが配置され、キャリッジリターンは配置されません。

于 2012-04-24T15:01:37.253 に答える
3

キャリッジリターンとラインフィードの両方が必要です。改行しかない。\nを\r\ nに置き換えると、メモ帳に正しく表示されます。

于 2012-04-24T15:03:07.687 に答える
1

LFだけでなく、キャリッジリターン(CR)とラインフィード(LF)の文字の組み合わせが必要な場合があります。

したがって、コードで\nを\r\nに置き換えます

于 2012-04-24T15:02:07.830 に答える
1

手始めに、テキストファイルではなくバイナリファイルを作成しています。これはおそらくメモ帳を混乱させます。

C#では、\ nはLFのみを意味しますが、\ r \ n(CR-LF)を使用する必要があります。

これを書いてください:

string[] lines = {"FirstName: Abcd", "SecondName: Tsfsdfs"};
System.IO.File.WriteAllLines(@"c:\happybirthday.txt", lines);
于 2012-04-24T15:02:42.813 に答える
0

新しい行が\n\rウィンドウにあります。しかし、いくつかのプログラムは、ちょうど理解するのに十分インテリジェント\nです。メモ帳のような他のものはそうではありません。

于 2012-04-24T15:01:56.303 に答える