SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Windows PowerShell 活用編

Windows PowerShell 活用編(6)
.NET Frameworkによるファイルの読み書き

StreamReaderクラスとStreamWriterクラスの利用

ファイルの書き込み

 .NET Frameworkのクラスでファイル書き込みを行うには、StreamWriterクラスを使用します。

 StreamWriterクラスはそのままでは使用できないため、下記のようにNew-Objectコマンドレットを使用してインスタンスを作成する必要があります。

PS> $sw = New-Object System.IO.StreamWriter("C:\Work\Test2.txt")

 エンコーディングを指定してファイルを書き込む場合には、下記のようにしてインスタンスを作成します。第2引数はファイルがすでに存在した場合に上書きするかどうかをBool値で指定します($trueで上書きを許可します)。

PS> $sw = New-Object System.IO.StreamWriter("C:\Work\Test2.txt", $false, [System.Text.Encoding]::UTF8)

 インスタンスを作成した後は、変数$swを通してStreamWriterクラスのメソッドやプロパティにアクセスすることができます。

ストリームを閉じる

 StreamWriterStreamReader同様、使用後に必ずCloseメソッドを実行して閉じる必要があります。

 この操作が行われない場合は、StreamWriterで開いたファイルはPowerShellがつかんだままとなってしまいます。PowerShellを終了すればファイルは解放されますが、使用後は必ずCloseメソッドを実行するようにしてください。

PS> $sw.Close()

1行書き込む

 WriteLineメソッドを使用すると、引数に指定した値をストリームに書き込み、続けて行終端記号を書き込みます。

PS> $sw.WriteLine("はひふへほ")

1文字書き込む

 Writeメソッドを使用すると、引数で指定した値をストリームに書き込みます。ただしWriteLineメソッドとは異なり行終端記号は書き込まれません。

PS> $sw.Write("まみむめも")

 Writeメソッドを使用して行終端記号を書き込む場合にはNewLineプロパティを使用して、下記のように記述することができます。

PS> $sw.Write($sw.NewLine)

まとめ

 今回はStreamReaderクラスとStreamWriterクラスを使用したファイルの読み書きについて説明しました。

 このようにPowerShellでは、標準のコマンドレットだけではなく.NET Frameworkライブラリによる操作も可能ですので、是非トライしてみてください。

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
Windows PowerShell 活用編連載記事一覧

もっと読む

この記事の著者

HIRO(ヒロ)

HIRO's.NETのHIROです。とある半導体工場のSEです。VB.NET, C#, PowerShellによるプログラミングを楽しんでいます。最近はBlog でPowerShellについて書いています。2008/07/07にPowerShell from Japan!!というサイトを立ち上げまし...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/3592 2009/03/09 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー