2020年11月17日
川俣晶の縁側ソフトウェアC# コーディング How Tototal 215 count

【入門級】ファイルを扱うメソッドで文字列も読み込ませたい!

Written By: 川俣 晶連絡先

 文字列の中にファイルの内容に相当する文字列が既にあるとします。

 ファイルを扱うメソッドで文字列も読み込ませたいとします。

 できるでしょうか?

 できます。

 それにはStringReaderクラスを使います。

 これを使えば、文字列に対するリーダーを作成できます。

 リーダーの扱い方はファイルのリーダーとほぼ同じです。

罠の数々 §

  • ファイルから読み出す際は予期せぬ例外が起きる可能性が常にあるから、usingメソッドで全体を囲って確実にファイルを閉じておく価値がある。しかし、文字列からの読み出しだと意図せぬ例外が起きる可能性がほとんどない。サンプルソースではusingメソッドを使っていないことに注意しよう。

参考リンク §

StreamReader クラス

StringReader クラス

TextReader クラス

 汎用の読み出しメソッドはリーダーをTextReader で受けていることに注意しよう。なぜこのクラスなのか、上記のリンクから辿って理由を調べてみよう。なお、StreamReader クラスはreader1の型である。

リポジトリ §

https://github.com/autumn009/cshowto

StringReader §

using System;

using System.IO;

class Program

{

    private static void fileReaderSub(TextReader reader)

    {

        for (; ; )

        {

            var s = reader.ReadLine();

            if (s == null) break;

            Console.WriteLine($"[{s}]");

        }

    }

    static void Main()

    {

        string src = "Hello!\nMy Friends!\nWelcome!";

        File.WriteAllText("sample.txt", src);

        // ファイルから読み出す

        using(var reader1 = File.OpenText("sample.txt"))

        {

            fileReaderSub(reader1);

        }

        // 文字列から読み出す

        var reader2 = new StringReader(src);

        fileReaderSub(reader2);

    }

}

実行結果

[Hello!]

[My Friends!]

[Welcome!]

[Hello!]

[My Friends!]

[Welcome!]

Facebook

COOL C# CREW

キーワード【 川俣晶の縁側ソフトウェアC# コーディング How To
【C# コーディング How To】の次のコンテンツ
2020年
11月
18日
【入門級】上位バイトと下位バイトを合体させる
3days 4 count
total 199 count
【C# コーディング How To】の前のコンテンツ
2020年
11月
13日
【入門級】整数計算だけで1.2倍を計算する
3days 4 count
total 372 count

このコンテンツを書いた川俣 晶へメッセージを送る

[メッセージ送信フォームを利用する]

メッセージ送信フォームを利用することで、川俣 晶に対してメッセージを送ることができます。

この機能は、100%確実に川俣 晶へメッセージを伝達するものではなく、また、確実に川俣 晶よりの返事を得られるものではないことにご注意ください。

このコンテンツへトラックバックするためのURL

http://mag.autumn.org/tb.aspx/20201117091424
サイトの表紙【C# コーディング How To】の表紙【C# コーディング How To】のコンテンツ全リスト 【C# コーディング How To】の入手全リスト 【C# コーディング How To】のRSS1.0形式の情報このサイトの全キーワードリスト 印刷用ページ

管理者: 川俣 晶連絡先

Powered by MagSite2 Version 0.34 (Alpha-Test) Copyright (c) 2004-2018 Pie Dey.Co.,Ltd.