NonSoft

ファイル入力方法のいろいろ(C#.NET)


 サンプル(ソース/コード)
<このサンプルの概要>
ファイルをいろんな方法で読込むサンプルです。いろんな方法とは以下の通りです。

1.文字コード(SJIS,JIS,EUC,UNICODE,UTF7,UTF8)を指定してテキスト形式でファイルを読込む
  (1)ファイル全部を一括で(一気に)読込む
  (2)ファイルを一行ごとに読込む
  (3)ファイルを一文字ごとに読込む

2.バイナリ形式でファイルで読込む
  (1)ファイル全部を一括で(一気に)読込む
  (2)ファイルを一バイトごとに読込む

文字コードを指定してテキスト形式でファイルを読込む(全部一気に読込む)
文字コードを指定してテキスト形式でファイルを読込む(一行ずつ読込む)
文字コードを指定してテキスト形式でファイルを読込む(一文字ずつ読込む)
バイナリ形式でファイルで読込む(全部一気に読込む)
バイナリ形式でファイルで読込む(一バイトずつ読込む)

ファイル出力の方法のサンプルはこちらです。
ファイル出力方法のいろいろ(C#.NET)

C#.NETのサンプルはこちらです。
ファイル入力方法のいろいろ(VB.NET)

文字コード関係のその他のツールやサンプルはこちらです。
文字コード変換/文字コード判定


/// <summary> /// テキストファイル入力(ファイル全部を一括で読込む) /// </summary> /// <param name="fpath">ファイルPATH</param> /// <param name="cname">文字コード名</param> /// <returns>入力した文字列データ</returns> /// <主な文字コード名> /// SJIS="SHIFT-JIS" /// JIS="ISO-2022-JP" /// EUC="EUC-JP" /// UNICODE="UNICODE" /// UTF7="UTF-7" /// UTF8="UTF-8" public String ReadText_A(String fpath, String cname) { String dt = ""; System.IO.StreamReader sr = null; try { sr = new System.IO.StreamReader(fpath, System.Text.Encoding.GetEncoding(cname)); dt = sr.ReadToEnd(); } catch (Exception ex) { throw ex; } finally { if (sr != null) sr.Close(); } return dt; }
/// <summary> /// テキストファイル入力(ファイルを一行ずつ読込む) /// </summary> /// <param name="fpath">ファイルPATH</param> /// <param name="cname">文字コード名</param> /// <returns>入力した文字列データ</returns> /// <主な文字コード名> /// SJIS="SHIFT-JIS" /// JIS="ISO-2022-JP" /// EUC="EUC-JP" /// UNICODE="UNICODE" /// UTF7="UTF-7" /// UTF8="UTF-8" public String ReadText_L(String fpath, String cname) { String dt = ""; System.IO.StreamReader sr = null; try { sr = new System.IO.StreamReader(fpath, System.Text.Encoding.GetEncoding(cname)); String ln; do { ln = sr.ReadLine(); if (ln != null) dt += ln + "\n"; } while (ln != null); } catch (Exception ex) { throw ex; } finally { if (sr != null) sr.Close(); } return dt; }
/// <summary> /// テキストファイル入力(ファイルを一文字ずつ読込む) /// </summary> /// <param name="fpath">ファイルPATH</param> /// <param name="cname">文字コード名</param> /// <returns>入力した文字列データ</returns> /// <主な文字コード名> /// SJIS="SHIFT-JIS" /// JIS="ISO-2022-JP" /// EUC="EUC-JP" /// UNICODE="UNICODE" /// UTF7="UTF-7" /// UTF8="UTF-8" public String ReadText_C(String fpath, String cname) { String dt = ""; System.IO.StreamReader sr = null; try { sr = new System.IO.StreamReader(fpath, System.Text.Encoding.GetEncoding(cname)); while( sr.Peek() >= 0){ Char[] c=new char[1]; sr.Read(c, 0, 1); dt += c[0]; } } catch (Exception ex) { throw ex; } finally { if (sr != null) sr.Close(); } return dt; }
/// <summary> /// バイナリファイル入力(ファイル全部を一括で読込む) /// </summary> /// <param name="fpath">ファイルPATH</param> /// <returns></returns> public Byte[] ReadBinary_A(String fpath) { Byte[] dt = new Byte[] { }; System.IO.Stream sr = null; System.IO.BinaryReader br = null; try { sr = System.IO.File.Open(fpath, System.IO.FileMode.Open, System.IO.FileAccess.Read); br = new System.IO.BinaryReader(sr); dt = new Byte[sr.Length]; br.Read(dt, 0, dt.Length); } catch (Exception ex) { throw ex; } finally { if (br != null) br.Close(); if (sr != null) sr.Close(); } return dt; }
/// <summary> /// バイナリファイル入力(ファイルを一バイトずつ読込む) /// </summary> /// <param name="fpath">ファイルPATH</param> /// <returns></returns> public Byte[] ReadBinary_B(String fpath) { Byte[] dt = new Byte[] { }; System.IO.Stream sr = null; System.IO.BinaryReader br = null; try { sr = System.IO.File.Open(fpath, System.IO.FileMode.Open, System.IO.FileAccess.Read); br = new System.IO.BinaryReader(sr); System.IO.FileInfo fi = new System.IO.FileInfo(fpath); while (t.GetLength(0) < fi.Length){ // ReDim Preserve dt(dt.GetLength(0)) Array.Resize<Byte>(ref dt, dt.GetLength(0) + 1); br.Read(dt, dt.GetLength(0) - 1, 1); } } catch (Exception ex) { throw ex; } finally { if (br != null) br.Close(); if (sr != null) sr.Close(); } return dt; }