プログラム

C#プログラミングレッスン

C#での .NETプログラミングを易しく丁寧に解説するメールマガジンです。「C#プログラミング・レッスン」で、.NETプログラミングをマスターしましょう。

全て表示する >

【C#プログラミングレッスン】 No.112-StreamReader, StreamWriter

2007/01/09

--------------------------------------------------------------------
                   ☆★ キャンペーン実施中! ★☆
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
         【ポコカ】ダウンロードで、100ポイントプレゼント

  お店のクーポン・会員カード・スタンプカードをケータイにひとまとめ

         ☆ おサイフケータイとお店をつなげるポータルサイト ☆
           Pococa!(R)ポコカ URL: http://www.pococa.com/ct/
---------------------------------------------------------------------

┏━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━┳━┳━┓
┃☆┃ C#プログラミングレッスン                         ┃_┃□┃×┃
┣━┻━━━━━━━━━━━━━━━━━━━━━━━━━┻━┻━┻━┫
┃ StringReader & StringWriter                                No.112┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

今回は、改行つき文字列をストリームのように扱うことのできるクラスについ
て説明します。

■──────────────────────────────────
■ StringReader

StringReaderは、改行付きの文字列をテキストファイルのように扱うことので
きるクラスです。
早速、コードを見てみましょう。

using System.Text;
using System.IO;
...
    string text = "Word\n" +
                  "Excel\n" +
                  "Visio\n" +
                  "PowerPoint";
    string aLine = null;
    StringBuilder sb = new StringBuilder();
    using ( StringReader strReader = new StringReader(text) ) {
       while ( (aLine = strReader.ReadLine() ) != null ) {
            sb.Append(aLine + ",");
        }
    }
    Console.WriteLine(sb);

StringReaderのコンストラクタで、操作したい文字列を渡します。
ReadLineメソッドで、文字列から1行分を読み込みます。取得した文字列には
改行コードは含まれません。文字列の終端に達した場合は、nullが返ります。

上記例では、 読み込んだ行を StringBuilder を使い、カンマ付きで連結させ
ています。最後の行にもカンマが付いてしまいますが、StringReaderの使い方
とは無関係なので、ご愛敬ということで...

■──────────────────────────────────
■ StringWriter

using System.Text;
using System.IO;
...
    StringBuilder sb = new StringBuilder();
    using ( StringWriter strWriter = new StringWriter(sb) ) {
        strWriter.WriteLine("Word");
        strWriter.WriteLine("Excel");
        strWriter.WriteLine("Visio");
        strWriter.WriteLine("PowerPoint");
    }
    Console.Write(sb);


StringWritergは、コンストラクタで与えたStringBuilderのインスタンスに対
し、書き込みを行います。
Writeメソッド、WriteLineメソッドで、文字列を書き込むことができます。
WriteLineメソッドでは、自動的に文字列の後ろに改行コードが付加されます。

改行コードを変更したい場合には、 NewLineプロパティに改行コードを設定し
ます。改行コードの初期値は、"\n" です。


■──────────────────────────────────
■ TextReader、TextWriterクラス

以下のような継承関係があります。

   TextReader (抽象クラス)
       StringReader
       StreamReader
   TextWriter (抽象クラス)
       StringWriter
       StreamWriter

今回見てきたメソッドは、すべてTextReader, TextWriterで定義されているメ
ソッドですので、そのままStreamReader, StreamWriterでも利用することがで
きます。

┌─┬─────────────────────────┬─┬─┬─┐
│☆│ C#プログラミングレッスン  (ぼぼ週刊)            │_│□│×│
├─┴─────────────────────────┴─┴─┴─┤
│ Published by Gushwell.                                           │
│ Copyright (C) 2004-2006 Gushwell All rights reserved.            │
│ Microsoft MVP Visual Developer - Visual C#(Apr 2006 - Mar 2007)  │
│-------------------- Gushwell's Page ---------------------------- │
│ 窓際プログラマーの独り言  :http://blog.livedoor.jp/gushwell/    │
│ 窓際プログラマーの読書三昧:http://gushwell.jugem.jp/            │
│ C#デザインパターン :                                             │
│  『増補改訂版Java言語で学ぶデザインパターン入門 / 結城 浩(著)』  │
│   のサンプルコードをC#に移植したものを掲載しています。           │
│   移植後のコードの公開は、結城氏の了解を得ています。             │
│   http://blog.livedoor.jp/gushwell/archives/50333227.html        │
└─────────────────────────────────┘


規約に同意してこのメルマガに登録/解除する

メルマガ情報

創刊日:2004-08-12  
最終発行日:  
発行周期:ほぼ週刊  
Score!: 非表示   

コメント一覧コメントを書く

この記事にコメントを書く

上の画像で表示されている文字を半角英数で入力してください。

※コメントの内容はこのページに公開されます。発行者さんだけが閲覧できるものではありません。 コメントの投稿時は投稿者規約への同意が必要です。

  • コメントはありません。