テキストファイルへの書き込み方法と改行の実施

このQ&Aのポイント
  • テキストファイルへの書き込み方法と改行の実施について
  • 改行を正しく行うための方法
  • NET C#でのテキストファイル操作の基本的な流れ
回答を見る
  • ベストアンサー

テキストファイルへの書き込み

テキストファイルへの書き込み お世話になります。 .NET C#で開発をしております初心者です。 下記の様な内容で、1行ずつ改行して 書き込みをしたいのですが、改行はどういう様に したら出来ますでしょうか。 ご教授頂きたく、宜しくお願い致します。       記 StreamWriter textFile; //txtファイルに書き込む textFile = new StreamWriter(MyPath + "test.txt", false); ftptxt_Make = "open xxxXXXXXX"; ftptxt_Make = ftptxt_Make + "xxxxx"; ftptxt_Make = ftptxt_Make + "xxxxx"; ftptxt_Make = ftptxt_Make + "zzzzz"; ftptxt_Make = ftptxt_Make + "put " + MyPath + " tttt/sss" + Hensuu + "j.bbb" + Hensuu + "P"; ftptxt_Make = ftptxt_Make + "close"; ftptxt_Make = ftptxt_Make + "bye"; textFile.WriteLine(ftptxt_Make); textFile.Close();

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

どこに改行を入れるのか不明ですが、 StreamWriter の WriteLine は末尾に改行文字を入れるので 改行を行う行ごと WriteLine で出力してはどうでしょうか? 例) textFile.WriteLine("今日は") textFile.WriteLine("雨です。") ↓ 今日は 雨です。 と三行になる。 どうしても不可能であれば、StreamWriterオブジェクトの NewLine プロパティで改行文字を取得できますので 任意の位置に入れてください。 例) textFile.WriteLine("今日は" + textFile.NewLine + "雨です。") ↓ 今日は 雨です。 と三行になる。 ※終端の改行を入れたくない場合は Write メソッドで。

その他の回答 (1)

  • hiropuri
  • ベストアンサー率55% (24/43)
回答No.1

この場合は "¥n" (※¥は半角)を出力する事で改行できます。 改行コードは状況によっては "¥r¥n” とする場合もありますので、 必要に応じて使い分けるのが良いですね。

関連するQ&A

  • textファイルの内容の削除について(C#です)

    C#でプログラミングをしています。 WriteLineを使って、textに書き込みをしているのですが、最後いったんこのファイルに書き込んだ文字をすべて消去できるようにしたいんですが、どのように書けばいいですか? 例えば、 StreamWriter writer = new StreamWriter("E:\\sample\\sample.txt"); writer.WriteLine("りんご"); と書き込んで、最後に「りんご」という文字を全て消去できるようにしたいんです。初心者なので、あんまり分からないので教えて下さい(><)

  • C#からテキストファイルへの出力について

    お世話になります。 .NET C#で開発をしております。 下記のコードで、テキストファイルへ書き出す際、 何故か最初の1レコード目が書き出されない現象が 起きてしまいます。 どなたかご親切な方、ご教示頂きたく宜しくお願い致します。     記 public static int Syori() { string MitxtPath = @"D:\MData"; string SotxtPath = @"D:\SData"; for (int x = 0; x < 2; x++) { if (x == 0) { FileName = "\\JF01.txt"; } else if (x == 1) { FileName = "\\JS05.txt"; } FileStream fs = new FileStream(MitxtPath + FileName, FileMode.Open); StreamReader r = new StreamReader(fs, Encoding.GetEncoding("Shift_JIS")); if (r.ReadLine() != null) { StreamWriter textFile; textFile = new StreamWriter(SotxtPath + FileName, true, Encoding.GetEncoding("Shift_JIS")); //レコードを書き込む string ZanData; string newData; byte[] bytesData; while ((OkuriNokosi = r.ReadLine()) != null) { bytesData = System.Text.Encoding.GetEncoding(932).GetBytes(ZanData); newData = System.Text.Encoding.GetEncoding(932).GetString(bytesData); textFile.WriteLine(newData); } textFile.Close(); r.Close(); } }

  • 【VC++2005(CLR)】ファイル書き込み時、他でファイルが開かれていると落ちる

    いつも大変お世話になっています。 VC初心者です。 現在、ファイル書き込み処理で悩んでいます。 他のユーザがファイルをオープンしてたり、開こうとすると 落ちてしまいます。 たとえば、ファイルが開かれていることを検知して、 ユーザに「ファイルを閉じてください」とメッセージを出した後、 再度書き込み処理を実行できませんでしょうか。 (書き込み中は他のユーザからのアクセスを拒否させたいです。) 現在以下のようなソースを書いています。 //ファイルオープン System::IO::StreamWriter^ sw = gcnewSystem::IO::StreamWriter( path_w,false,System::Text::Encoding::Default); //ファイル書き込み String^ newData = "aaa"; sw->WriteLine(newData); //ファイルクローズ sw->Close(); お手数ですが、よろしくお願いします。

  • VB.NET テキストファイルにデータを書き込み

    テキストファイル("c:\test.txt")に「かきくけこ」と全角5文字で1行のデータがあるとします。 このテキストファイルに「あいうえお」を先頭に追加で書き込みたいのですが、どうすればいいのでしょうか? あくまで「かきくけこ」を変数化せずファイルに直接、書き込む方法がある場合、教えてください。 'テキストファイルを開いたときの内容 あいうえお かきくけこ ちなみにですが、テキストファイル("c:\test.txt")に「かきくけこ」と全角5文字で1行のデータがあるとして、 末尾に「さしすせそ」を追加で書込みする方法は下記の通りでした。 'ファイルを書き込み用に開く、指定したファイルがない場合は作成する dim fsFile As System.IO.FileStream = _ System.IO.File.OpenWrite("c:\test.txt") 'StreamWriterオブジェクトを作成し、テキストデータが書き込めるようにする Dim sw As System.IO.StreamWriter = _ New System.IO.StreamWriter(fsFile) 'ファイルの末尾に移動する sw.BaseStream.Seek(0, System.IO.SeekOrigin.End) 'データを書き込む sw.WriteLine("さしすせそ") 'ファイルを更新する sw.Flush() 'ファイルを閉じる sw.Close() fsFile.Close() 'テキストファイルを開いたときの内容 かきくけこ さしすせそ

  • ファイルの作成からその使用に際して

    VB2008Expressでプログラミング中です。 早速ですが、この度ボタンを押すと3種の.txtファイルを作成し、ある文字列をそこに保存する、といったプログラムが必要になったのですが不具合がでて困っています。 sub createfile() IO.file.create("d:\1.txt") IO.file.create("d:\2.txt") IO.file.create("d:\3.txt") end sub private sub button_click()handles button1.click call createfile() Dim Writer As New IO.StreamWriter("d:\1.txt") Writer.WriteLine(Richtextbox1.Text) Writer.Close() Dim Writer As New IO.StreamWriter("d:\2.txt") Writer.WriteLine(Richtextbox2.Text) Writer.Close() Dim Writer As New IO.StreamWriter("d:\3.txt") Writer.WriteLine(Richtextbox3.Text) Writer.Close() end sub といった感じでファイルを作成したらそこにテキストを保存するようにしたいのですが、「ファイルが使用中でアクセスできません」とエラーになります。 いろんなサイトで勉強してみたのですが、いまいち理由がわかりません。どなたか教えていただける方はいませんでしょうか?

  • ASP.NETでStreamWriterクラスを使ってファイルに書き込む時にアクセスエラーが出ます

    ASP.NETでStreamWriterクラスを使い、abc.txt(中身は空です)に書き込みをしたいと思っていますが、Page_Loadイベントハンドラを使っても、ボタンClickイベントハンドラを使っても、ファイルにアクセスするときにエラーが出てしまいます。 ブラウザのエラーは以下の通りです。 '/kensyu' アプリケーションでサーバー エラーが発生しました。 パス "C:\abc.txt" へのアクセスが拒否されました。 また、イベントハンドラ内のコードは以下の通りです。 Dim sw As New System.IO.StreamWriter("C:\abc.txt") sw.WriteLine("Hello") sw.WriteLine("World") sw.Close() エラー内容を読む限りではabc.txtのプロパティにユーザを追加しろ、とあるように読めるのですが、追加ができません・・・ネットでも調べてみましたがわかりませんでした。解決方法をご存知の方がいらっしゃいましたら、どうぞよろしくお願いいたします。

  • C# StreamReader,StreamWriter による文字化

    C# StreamReader,StreamWriter による文字化け お世話になります。 文字化けで悩んでいます。 Visual Studio 2008 C# にて、テキストファイルからデータを読んで別のテキストファイルに そのまま書き出す(もちろん実際の運用では加工するわけですが)処理で文字化けが起こります。 そのテキストファイル自身を C# で作れば問題はないのですが、メモ帳を使って書き込んだファイルでは 文字化けが起こります。 対処方法があれば教えてください。 以下はその実験に使ったコードです。 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; namespace ConsoleApplication5 { class Program { static void Main(string[] args) { // これは正常に書き込みできました StreamWriter sw = new StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + @"\test.txt"); sw.WriteLine("これはてすとです。"); sw.WriteLine("This is test."); sw.Close(); // これも正常に読み込め、書き込みもできました StreamReader sr = new StreamReader(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + @"\test.txt"); sw = new StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + @"\newtest.txt"); while (!sr.EndOfStream) { sw.WriteLine(sr.ReadLine()); } sr.Close(); sw.Close(); // 次はあらかじめメモ帳で作ったファイルを読んで、別のファイルに書き出します // これが文字化けします sr = new StreamReader(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + @"\test2.txt"); sw = new StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + @"\newtest2.txt"); while (!sr.EndOfStream) { string dat = sr.ReadLine(); sw.WriteLine(dat); Console.WriteLine(dat); } sr.Close(); sw.Close(); } } }

  • Visual C++ 2010 のファイル書き出し

    private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { String^ string1; string1=""; StreamWriter^ swriter1=gcnew StreamWriter("C:sample005.txt"); swriter1->WriteLine(string1); swriter1->Close(); } Visual C++ 2010 のWindowsフォームアプリケーションで、 ボタンのクリックからファイルを書き出したいのですが、上記ではエラーが出て動きません どのようにすれば良いのでしょうか?

  • ファイルに追記していくには?

    お世話になります。 vb2005を使用しております。 Dim Writer As New IO.StreamWriter("C:\VTest.txt") Writer.WriteLine(TextBox1.Text) Writer.Close() for loopでまわすたびにtextbox1の内容がかわるというfor loopの中にこのようなコードを記述しているのですが、これだと追記できず上書きされてしまって困っています。追記する形にするにはどうすればよろしいでしょうか?教えてください。お願いします。

  • ファイルの排他

    ログの出力/照会時の排他処理について、教えて下さい。 環境 言語:VC++/CLI OS:Win VISTA 前提 ログ出力 ・APL起動時にログファイルをオープンする。  (基本的にはオープンしっぱなし) ・メッセージ受信などイベント取得時にログに書き込む。  (複数スレッドからの書込み処理あり) ・最大行数に達したら、ファイルをクローズして、  新規にファイルをオープンしてそちらに書き込む。  (aaa_1.log, aaa_2.log,・・・という具合) ログ照会 ・画面からボタン押下で今まで書き込んだログを照会する。 ・ログ照会時はオープン→リード→クローズとなります。 質問 複数スレッドから書込み処理がある場合に備えて排他をかける 「読み込み時に書込み発生(EOFがおかしくなるとか)」や 「書込み時に読み込み発生(行の半端なところで表示されるとか)」など、バッティングした際を考慮した排他のかけ方 について注意点があればご教授頂きたいのですが・・・ 単純に以下のような実装イメージでよろしいのでしょうか? //////////////////////////////////// 書込み処理 //変数定義 StreamWriter^ sw = nullptr; 起動時 メソッド1 sw = gcnew StreamWriter( "TestFile.txt" ); 最大行数に達したら メソッド2 sw->Close(); sw = gcnew StreamWriter( "TestFile2.txt" ); //イベント発生 メソッド3 //排他処理 sw->WriteLine( "aaaa" ); //排他解除 //////////////////////////////////// //////////////////////////////////// 照会処理 //n=ファイルサイズを求めておく; //排他処理 StreamReader^ sr = gcnew StreamReader( "TestFile.txt" ); array<Char>^c = nullptr; while ( sr->Peek() >= 0 ) { c = gcnew array<Char>(n); sr->Read( c, 0, c->Length ); //ある理由でReadLineが                  //使えそうにないです                  //理由を説明すると                  //長くなりそうなので                  //省かせて下さい //画面出力領域 ← c } sr->Close(); //排他解除 //////////////////////////////////// 以上、宜しくお願い致します。