>  > PITWORK ピットワーク ウォーターポンプ ダイハツ 【車名 ミラ /排気量 660 /車種型式 L285S /エンジン型式 KFVE /エンジン区分 EFI /採年 2006/12 /廃年 /オプション・特記 ASSY,0710-1010 】 ウォーターポンプ 交換 部品 メンテナンス 車 パーツ ポイント消化

【 バージョンアップしました!】


GooglePlayへGO!


2018/12/20

PITWORK ピットワーク ウォーターポンプ ダイハツ 【車名 ミラ /排気量 660 /車種型式 L285S /エンジン型式 KFVE /エンジン区分 EFI /採年 2006/12 /廃年 /オプション・特記 ASSY,0710-1010 】 ウォーターポンプ 交換 部品 メンテナンス 車 パーツ ポイント消化

C#でバイナリファイルに書き込むには System.IO.FileStream クラスと System.IO.BinaryWriter クラスを使います。

ここでは FileStream クラスと BinaryWriter クラスの基本的な使い方についてまとめてみます 16インチ サマータイヤ セット【適応車種:N BOX(JF系 NA車 4WD)】WEDS レオニス CH ブラックメタルコートミラーカット 5.0Jx16LEMANS V LM5 165/50R16。

/エンジン区分 /採年 部品 660 /エンジン型式 ピットワーク /排気量 車 2006/12 交換 ウォーターポンプ ウォーターポンプ KFVE /廃年 】 ミラ /車種型式 /オプション・特記 ミラ ポイント消化 パーツ L285S EFI メンテナンス ASSY,0710-1010 PITWORK /エンジン型式 【車名 ダイハツ

PITWORK ピットワーク ウォーターポンプ ダイハツ 【車名 ミラ 【メーカー在庫あり】 /排気量 660 /車種型式 L285S /エンジン型式 245/35R19 KFVE /エンジン区分 EFI /採年 2006/12 /廃年 /オプション・特記 ASSY,0710-1010 】 ウォーターポンプ 交換 部品 メンテナンス 車 パーツ ポイント消化

ファイル名を指定してファイルの中身を読み書きする為のクラスです [ホイール1本(単品)] BLEST / EUROMAGIC LANCE STP (BKP) 13インチ×4.0J PCD:100 穴数:4 インセット:43。

データは 1byte づつもしくは byte 配列で読み書きする為のメソッドがありますが、それだけでは不便なので BinaryWriter クラスと合わせて使う事でより手軽にバイナリファイルの書き込みが行えるようになります。

BinaryWrietrクラス

Stream クラスから、intdouble などの型単位でデータを読み込むためのクラスです。

PITWORK ピットワーク ウォーターポンプ ダイハツ 【車名 ミラ /排気量 660 /車種型式 L285S /エンジン型式 KFVE /エンジン区分 EFI /採年 2006/12 /廃年 /オプション・特記 ASSY,0710-1010 】 ウォーターポンプ 交換 部品 メンテナンス 車 パーツ ポイント消化,[#tong##]

※image photo PITWORK部品 商品詳細【車名】:ミラ【排気量】:660【車種型式】:L285S【エンジン型式】:KFVE【エンジン区分】:EFI【採年】:2006/12【廃年】:【オプション・特記】:ASSY,0710-1010【PITWORK品番】:AY720-DA066【参考純正品番】:16100-B9452※画像はイメージです。※

使用する Stream クラスはコンストラクタでを指定します。

ファイルからデータを読み込むには Stream クラスから派生した FileStreamクラスを指定します ブリヂストン ECOPIA エコピア EX20C typeH サマータイヤ 165/55R15 KYOHO AME SHALLEN シャレン XF-55 MONOBLOCK ホイールセット 4本 15インチ 15 X 5 +45 4穴 100。

ファイルを開く

FileStream オブジェクトを生成すると、ファイルがオープンされて内容を読み込める状態になります。

 

読み込みたいファイルの名前はコンストラクタの引数に渡します 【送料無料 N-BOX タントカスタム ワゴンR】 165/55R15 15インチ BRIDGESTONE ブリヂストン ポテンザ アドレナリン SW005 5J 5.00-15 DUNLOP ダンロップ エナセーブ RV504 SALE サマータイヤ ホイール4本セット。

この他コンストラクタには FileMode などを指定する事が出来ます [Azur アズール] ハンドルカバー UD クオン/フレンズクオン(H17.1~) ラメブルー 2HSサイズ(外径約45~46cm) XS55C24A-2HS-012。

 

FileMode

  • FileMode.CreateNew   ・・・新しいファイルを作成(ファイルが存在する場合Truncatと同じ)
  • FileMode.Create     ・・・新しいファイルを作成(ファイルが存在する場合例外がスロー)
  • FileMode.Open      ・・・ファイルを開く(ファイルが存在しない場合例外がスロー)
  • FileMode.OpenOrCreate  ・・・ファイルが存在する場合は開き、存在しない場合は新しいファイルを作成
  • FileMode.Truncate     ・・・ファイルは開かれると、サイズが 0 バイトになるように切り詰め
  • FileMode.Append     ・・・ファイルが存在する場合は開き、ファイルの末尾をシーク

 

 

生成したFileStreamを使って BinaryWriter オブジェクトを生成します。

 

 

 var fileName = @"c:\test.dat";
 var writer = new BinaryWriter(new FileStream(fileName, FileMode.Create));

ファイルを読む

BinaryWriter クラスには様々な型でデータを書き込むメソッドが用意されています。

 

  • Write(Byte[], int, int)  ・・・指定されたバイト数をバイト配列に書き込み
  • Write(SByte)      ・・・1 バイト符号付きを書き込み
  • Write(Int16)         ・・・2 バイト符号付き整数を書き込み
  • Write(Int32)        ・・・4 バイト符号付き整数を書き込み
  • Write(Int64)        ・・・8 バイト符号付き整数を書き込み
  • Write(Byte)        ・・・1 バイト符号なし整数を書き込み
  • Write(UInt16)       ・・・2 バイト符号なし整数を書き込み
  • Write(UInt32)       ・・・4 バイト符号なし整数を書き込み
  • Write(UInt64)       ・・・8 バイト符号なし整数を書き込み
  • Write(Single)        ・・・4 バイト浮動小数点値を書き込み
  • Write(Double)       ・・・8 バイト浮動小数点値を書き込み

 

ファイルを閉じる

ファイルは開いたら必ず閉じる必要があります。

ファイルを閉じるには StreamWriter クラスの Close() メソッドを呼び出します。

Close は finally で

ファイルの読み込み中に例外が発生する可能性がある事を必ず考慮してコードを書きましょう。

try ... finally ステートメントの finally ブロックで Close() を呼び出す事で例外発生時にも対応したコードを書くことが出来ます。

 var fileName = @"c:\test.dat";
 var writer = new BinaryWriter(new FileStream(fileName, FileMode.Create));
 try
 {
 //書き込む処理
 writer.Write((Int32)100);
 writer.Write((Int16)100);
 writer.Write((Double)100.0);
       :
       :
 }
 finally
 {
 writer.Close();
 }

Close の代わりに using を使う

StreamWriter クラスは IDisposable インターフェースをもっているので、Close() メソッドのかわりに using 構文を使う事も出来ます。

 

下記の例は、上の try … finally を使ったコードと全く同じ動きをします。

using ブロックを抜けた時点で(例外が起きる起きないにかかわらず)IDispposableインターフェースの Dispose() メソッドが呼ばれます。この Dispose() でファイルを閉じる処理が行われます 。

 var fileName = @"c:\test.dat";
 using (var writer = new BinaryWriter(new FileStream(fileName, FileMode.Create)))
 {
 //書き込む処理
 writer.Write((Int32)100);
 writer.Write((Int16)100);
 writer.Write((Double)100.0);
       :
       :
 }

 

関連記事