>  > [tanabe_NF210]JB7 ライフ(H15/09~H18/10)用タナベ_ダウンサス<車検対応>

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


GooglePlayへGO!


2018/12/20

[tanabe_NF210]JB7 ライフ(H15/09~H18/10)用タナベ_ダウンサス<車検対応>

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

ここでは FileStream クラスと BinaryWriter クラスの基本的な使い方についてまとめてみます ミシュランスタッドレスXアイス3 XI3+ 205/55R16 & ジャパンsport01 16×6.5J 100/5H + 48 インプレッサ G4 GJ2。

ライフ(H15/09~H18/10)用タナベ_ダウンサス<車検対応> [tanabe_NF210]JB7 [tanabe_NF210]JB7 ライフ(H15/09~H18/10)用タナベ_ダウンサス<車検対応>

[tanabe_NF210]JB7 01.12~07.05 ライフ(H15/09~H18/10)用タナベ_ダウンサス<車検対応> 1列目パワーシート

ファイル名を指定してファイルの中身を読み書きする為のクラスです 純正 ATF ミッションオイル 20リットル缶 マツダ ボンゴ SSF8R用 オートマチックフルード M-III K020W0046E 純正品 オイル 20L 純正オートマオイル。

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

BinaryWrietrクラス

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

[tanabe_NF210]JB7 ライフ(H15/09~H18/10)用タナベ_ダウンサス<車検対応>,[#tong##]

適 合 車 種シリーズSUSTEC NF210品 番JB5NK車 名HONDA ライフ型 式JB7エンジンP07A年 式H15/09~H18/10ダウン量(mm)Fr=-30~-40 / Rr=-15~-25バネレート(kg/mm)Fr=1.9 / Rr=1.8確認グレードD マイナー前車にて確認備 考・備 考1:-----注意事項・ダウン量は目安です。グレードやオプションの有無によって誤差があります。・平成18年1月以降に登録された車輌は【フォグランプの下縁高さが250mm未満】【ウインカーの下縁高さが350mm未満】【ヘッドライトの下縁高さが500mm未満】いずれかの場合保安基準に抵触致します。商 品 詳 細納  期・メーカー取り寄せ商品です。入金確認後【翌営業日~翌々営業日】での発送となります。※但し、メーカー欠品などで納期が遅延する場合がございます。事前に在庫確認お願いします。※納期がかかることによるキャンセル・クレームはお受けできません。その他・送料/決済方法等は下記インフォメーションを参照ください。・不明な点がございましたらQ&Aよりお問合せください。注意事項・商品説明は概略です。車種によっては異なる場合がございます。・商品画像はイメージです。実際の商品とは異なる場合がございます。・予告なく、価格や商品が変更・生産中止となる場合がございます。商 品 説 明◆tanabe SUSTEC NF210・品 番:JB5NK・車 名:HONDA ライフ・型 式:JB7・エンジン:P07A・年 式:H15/09~H18/10・ダウン量(mm):Fr=-30~-40 / Rr=-15~-25・レート(kg/mm):Fr=1.9 / Rr=1.8・確認グレード:D マイナー前車にて確認・備 考1:-----

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

ファイルからデータを読み込むには Stream クラスから派生した FileStreamクラスを指定します 【高性能低ダスト】BMW X3(F25) WY20用 リアブレーキパッド+センサー ☆送料無料☆ 当日発送可能(弊社在庫品の場合)。

ファイルを開く

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

 

読み込みたいファイルの名前はコンストラクタの引数に渡します ボルボ ワイドスペーサー/ホイールスペーサー 13mm ハブ径 65.1 ブラック 2枚セット ERST エアスト。

この他コンストラクタには FileMode などを指定する事が出来ます 【補修用*HDK新品ドライブシャフトASSY*右側】 マツダ AZワゴン MD21S(4WD) F6Aターボ 2000年12月~2001年10月(ABS付車) * 純正番号 1A08-25-020B 相当品。

 

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);
       :
       :
 }

 

関連記事