C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


■87331 / )  FIleStreamの使い方について
□投稿者/ 七味 (1回)-(2018/05/11(Fri) 22:40:09)

分類:[C#] 

初めまして
C#初心者です。

開発環境はVS Community 2017です。

1ギガ以上の1行でつながったファイルがあり、それを特定のバイト数で読みたいと思い、
このようなプログラムを書きました。

    private void button1_Click(object sender, EventArgs e)
    {

        // ファイルオープン
        FileStream fs = new FileStream(@"C:\bigdata", FileMode.Open, FileAccess.Read);

        // 書き込み用ファイルオープン
        StreamWriter sw = new StreamWriter(@"C:\newdata.txt", false, Encoding.GetEncoding("shift_jis"));

        byte[] buf = new byte[1000];
        int bufpos = 0;
        for(;;)
        {
            int readSize = fs.Read(buf, bufpos, buf.Length);
            if(readSize == 0)
            {
                break;
            }
            bufpos += 1000;
            string text = System.Text.Encoding.GetEncoding("SHIFT-JIS").GetString(buf);
            string val = text.Substring(10, 10);
            sw.WriteLine(val);
        }
        // ファイルクローズ
        fs.Close();
        sw.Close();
    }
}


1回目のループでは問題ありませんが、2回目のfs.Readで以下のエラーがでます。

「例外はハンドルされていません。」




どのように修正すればよろしいでしょうか?
よろしくお願いします。

返信 編集キー/


管理者用

- Child Tree -