Linq ファイルの読み込み書き込み

C# Linq ファイルのn番目に文字列を挿入する方法 ReadLinesメソッド、WriteAllLinesメソッドを使用してみよう!

C#を学ぶならガチで読んで欲しい本はこちら


今回のテーマ

今回は既に内容が書き込まれているファイルに対し、指定した行に文字列を挿入する方法を解説します。

ファイルを読み込むためのメソッドと書き込むためのメソッドを一緒に使います。

この記事では、下記の行に書き込むソースコードを書いていきます。

・1行目に書き込む方法

・n行目に書き込む方法

・1番最後の行に書き込む方法

それでは、やっていきましょう。

KappaChan
今回はファイルに文字列を挿入していく方法をみていくかっぱ!

今回使用するファイルの内容

今回は「D:\Example」に下記の内容のファイルを置きました。

 Robot.txt
Rockman
Rollchan
Fireman
Iceman

このファイルに対して内容を挿入していきましょう!!

C#のLinqをさらに学びたい方へ

C#のLinqを理解して頂くために参考書を執筆致しました!

Linqの演習問題はこちらの参考書に載せているので、問題を解いて理解を深めたい方はこちらの参考書チェックしてください!

下記の画像をクリック!!kindleunlimitedの会員であれば無料で見れます!

⇩初心者向け      ⇩中級者向け

C#やるならこの参考書は絶対読んでいてほしい!

1行目に挿入する方法

早速ソースコードを書いていきます。1行目に「Quickman」、2行目に「Bubbleman」を挿入してみます。

 テキストの内容
Quickman
Bubbleman
Rockman
Rollchan
Fireman
Iceman

処理を1つずつ解説していきます。

step
1
FileStreamクラスを使用して、テキストファイルをオープンし、StreamReaderとStreamWriterのオブジェクトを生成します。各引数は下記となっています。

・第1引数:ファイルのパス

・第2引数:既存ファイルを開く

・第3引数:読み込みと書き込みを両方行えるようにする。

・第4引数:他からのアクセスを拒否

step
2
ReadToEndメソッドでtexts引数に保持

step
3
Positionプロパティで最初の位置に戻し、挿入したい内容を書き込む

step
4
保持した内容(texts引数)を書き込む

上記の処理によって、実現しています。続けて、n番目に挿入する方法を紹介します。

KappaChan
読み込み書き込みを両方行えるようにすることが重要かっぱ!

n番目に挿入する方法

この記事を見ている方はn行目に挿入する方法を知りたい方が一番多いと思います。

私も色々とやり方を考えていたのですが、下記の方法が一番しっくりときました。ソースコードを書いていきます。

下記の例では、4行目に「Quickman」と「Bubbleman」を挿入する例です。

 Robot2.txt
Rockman
Rollchan
Fireman
Quickman
Bubbleman
Iceman

4行目に挿入することが出来ました。ReadLinesメソッドを使用する方法です。ReadLinesメソッドに関しては、下記の記事も参考になります。

こちらもCHECK

C# Linq ファイルの書き込み方法を紹介 Linqの抽出結果を書き込むことも可能です。 

C#を学ぶならガチで読んで欲しい本はこちら 今回のテーマContents1 今回のテーマ2 ファイルに1行ずつ書き込む方法3 配列、リストの文字列をファイルに一気に書き込む方法4 配列、リストの文字列 ...

続きを見る

本当は元々のファイルに対して、書き込みたかったのですが、読み込みのアクセスのプロセスを削除することが出来ずに断念しました。

上記のソースコードに対して、処理の説明をしていきます。

step
1
File.ReadLinesメソッドを使用して、全てのテキストの内容を読み込む。

step
2
Skipメソッドを使用することで指定した行数より後ろの内容を保持する。

step
3
Takeメソッドで指定した行数より前の内容を取り出す。

step
4
3で取り出した内容に挿入したい文字列を追加し、その後に2で保持した内容を追加する。

step
5
4で作成した配列をWriteAllLinesメソッドによって一気に書き込む。

このやり方はReadLinesメソッドを使用しているので、処理も早く、メモリの圧迫する心配がないのが強みです。

また、Linqを自由に扱うことができるので、自由自在に内容を変更することが出来ます。

1番初めに挿入する方法も0を指定すると出来てしまいます。元のテキストに書き込めない以外はとても万能です。

誰かFileクラスを使用した時のメモリ解放の方法教えてください!!

TakeメソッドとSkipメソッドについては下記の記事を参考にしてください。

こちらもCHECK

C# Linqは便利なので使い方を覚えよう。Take、Skip、TakeWhile、SkipWhileメソッドを解説します。

C#を学ぶならガチで読んで欲しい本はこちら 今回のテーマContents1 今回のテーマ2 Take、Skip、TakeWhile、SkipWhileについて2.1 Take2.2 Skip2.3 T ...

続きを見る

一番最後の行に挿入する方法

正直書かなくてもいいかなーって思いましたが、一応書いておきますね。

下記のようにStreamWriterを使用するのが一般的だと思います。

 Robot.txt
Rockman
Rollchan
Fireman
Iceman
Quickman
Bubbleman

気を付けないといけない所はStreamWriterの第2引数をtrueにすることですね。

falseにすると、全ての内容を上書きして書き込みます。下記のようになるので、気を付けましょう。

 Robot.txt
Quickman
Bubbleman

まとめ

今回の記事では、ファイルの内容の挿入方法について書いていきました。

今回のやり方が必ずしも正しいとは限らないので、

今回実装する処理でしっくりきた場合はぜひ紹介した方法を使ってください。

少しでもお役に立てたのであれば幸いです。

KappaChan
最後まで記事を読んでくれてありがとうかっぱ!!

 

 

 

C#のLinqをさらに学びたい方へ

C#のLinqを理解して頂くために参考書を執筆致しました!

Linqの演習問題はこちらの参考書に載せているので、問題を解いて理解を深めたい方はこちらの参考書チェックしてください!

下記の画像をクリック!!kindleunlimitedの会員であれば無料で見れます!

⇩初心者向け      ⇩中級者向け

C#を学ぶならガチで読んで欲しい本はこちら


新しいサイト作りました。アニメのまとめサイトです。

レインボーリアルタイムTwitter(アニメ版)


映画ドキュメンタリ版のブログはこちら
レインボーまとめサイト(映画ドキュメンタリー版)
ポケモンまとめブログはこちら
レインボーまとめサイト(ポケモン版)

-Linq, ファイルの読み込み書き込み

Ads Blocker Image Powered by Code Help Pro

広告ブロックを検出しました。

ブラウザの広告機能を使用して広告をブロックしていることが検出されました。
ブラウザの広告ブロッカーを無効にし、「更新」をクリックしてください。

Powered By
Best Wordpress Adblock Detecting Plugin | CHP Adblock