- ベストアンサー
改行して書きたい
シリアル通信で定期的に4桁の数字が送られてきます。 それをSample.txtに 0126 0125 0125 0125 0124 と言う風に、記録したいんですが、実際やってみると 0124 と、データが上書きされてしまい,一番最後に送られてきた数字しか記録されません。 これを改行して書くにはどうしたらいいんでしょうか、おしえてください。 data = RecvStr IO.File.WriteAllText("C:\Test\Sample.txt", data, System.Text.Encoding.GetEncoding("Shift-JIS"))
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
http://msdn.microsoft.com/ja-jp/library/system.io.file.writealltext%28v=vs.110%29.aspx > 新しいファイルを作成し、内容をそのファイルに書き込んだ後、ファイルを閉じます。 既存のターゲット ファイルは上書きされます。 とあります。「データが上書きされてしまい,一番最後に送られてきた数字しか記録されません。」とは正しい動作です。 続けて書きたいのなら 方法1: IO.File.ReadAllTextでファイルから全部読む→新しいデータを加える→IO.File.WriteAllTextでファイルに書き込む 方法2: AppendAllTextメソッドを使う http://msdn.microsoft.com/ja-jp/library/ms143357%28v=vs.110%29.aspx あと、RecvStrに改行文字が入っていない場合は、改行文字を付けたす必要があります。
お礼
回答ありがとうございます。