- ベストアンサー
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() 'テキストファイルを開いたときの内容 かきくけこ さしすせそ
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
必ず先頭か末尾ということなら コマンドプロンプトでCOPYを使えばどうでしょう。 COPY AAA.TXT+BBB.TXT CCC.TXT は、AAA.TXT(新規)の内容とBBB.TXT(既存)の内容が連結されてCCC.TXTになります。
その他の回答 (3)
- 1050 円(@1050YEN)
- ベストアンサー率69% (477/687)
>やっぱり「あいうえお」+バッファの方法ですよね… 質問される前に想像されていたと思いますが、、、だと思います。。。 >もしもバッファが1GBにも及ぶ場合でも、 しかないかと思います。 「そのテキストファイルを利用するという仕様を変えてみては?」としかアドバイスが出来ません。 せっかくの.NETなので、XMLを利用するとか。。。 であれば、思いのままの位置に挿入も出来ますし、削除も可能ですしね。
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
"ファイルに直接、先頭に追加で書き込む"というような方法はありません。
- 1050 円(@1050YEN)
- ベストアンサー率69% (477/687)
>先頭に追加で書き込みたいのですが >末尾に「さしすせそ」を追加で書込みする方法は下記の通りでした 同様な手法での、先頭への追加方法は、存在しないと思います。 っていうか、確かに ・「さしすせそ」は、文末への追加 ですが、 ・「あいうえお」は、先頭への挿入 ですよね。 APIでも存在してないと思うので、もしフレームで用意されていたとしても、内部処理はバッファを読み込んで「あいうえお」+バッファの出力をすることになると思います。
補足
やっぱり「あいうえお」+バッファの方法ですよね… 別の状況として、もしもバッファが1GBにも及ぶ場合でも、先頭に挿入する文字列+バッファなんですかね?
お礼
おぉーできましたー バッチにしてVBから実行したいと思います。 ありがとうございます。