C#のBinaryWriterクラスの使い方を徹底解説!バイナリデータの書き込み方法
C#のBinaryWriterクラスとは
ストリームにバイナリ情報を書き込みたい場合には、C#のBinaryWriterクラスを使用します。BinaryWriterはSystem.IO名前空間に属しており、double型や文字列などのプリミティブ型の値をバイナリ形式でストリームに書き込むための便利な機能を提供しています。
書き込んだデータを読み戻す際には、同じくSystem.IO名前空間に含まれるBinaryReaderクラスを組み合わせて使うのが一般的です。
BinaryWriterを使った実装例
以下は、BinaryWriterクラスでファイルにバイナリデータを書き込み、BinaryReaderでその内容を読み出すサンプルコードです。
static void WriteMe() {
using (BinaryWriter w = new BinaryWriter(File.Open("C:\\abc.txt", FileMode.Create))) {
w.Write(37.8);
w.Write("test");
}
}
static void ReadMe() {
using (BinaryReader r = new BinaryReader(File.Open("C:\\abc.txt", FileMode.Open))) {
Console.WriteLine("Value : " + r.ReadDouble());
Console.WriteLine("Value : " + r.ReadString());
}
}コードの解説
上記のWriteMeメソッドでは、BinaryWriterクラスを使ってファイルを開き、その中に内容を書き込んでいます。
static void WriteMe() {
using (BinaryWriter w = new BinaryWriter(File.Open("C:\\abc.txt", FileMode.Create))) {
w.Write(37.8);
w.Write("test");
}
}処理の流れをポイントごとに整理すると、以下のようになります。
- File.Open("C:\\abc.txt", FileMode.Create):指定したパスにファイルを作成し、すでに存在する場合は上書きして開きます。
- w.Write(37.8):double型の数値をバイナリ形式でストリームに書き込みます。
- w.Write("test"):文字列を長さプレフィックス付きのバイナリ形式で書き込みます。
- usingステートメント:ブロックを抜けるときにBinaryWriterが自動的に破棄され、ファイルハンドルなどのリソースが確実に解放されます。
読み込み側(BinaryReader)の注意点
ReadMeメソッドでは、BinaryReaderのReadDouble()やReadString()を使ってデータを読み戻しています。ここで重要なのは、書き込み時と同じ順序・同じ型で読み取る必要があるという点です。書き込んだ順序と異なる型で読み出すと、データが正しく復元できず、例外が発生したり意図しない値が返されたりする原因になります。
まとめ
BinaryWriterクラスを使えば、テキストではなくコンパクトなバイナリ形式でデータをファイルに保存できます。数値や文字列を効率的に永続化したい場合に非常に有用なため、System.IO名前空間のBinaryWriterとBinaryReaderはセットで覚えておくとよいでしょう。
-
Androidでシングルトンクラスを使う方法をサンプルコード付きで解説
シングルトンデザインパターンとは?実装例に入る前に、まず「シングルトンデザインパターン」についておさらいしておきましょう。シングルトン(Singleton)とは、あるクラスのインスタンス生成をアプリケーション全体で1つだけに制限するデザインパターンです。主な用途としては、同時実行(並行処理)の制御や、アプリケーションがデータストアへアクセスするための中心的なアクセスポイントの作成などが挙げられます。この記事では、Androidアプリでシングルトンクラスを実際に使う方法を、ステップごとのサンプルコードとともに解説します。手順1:新規プロジェクトを作成するAndroid StudioでFile →
-
AndroidのListViewでVectorクラスを使用する方法【初心者向け解説】
AndroidのListViewでVectorクラスを活用する方法 この記事では、AndroidアプリのListView(リストビュー)において、JavaのVectorクラスを使用してデータを管理・表示する方法を、実際のコード例とともに段階的に解説します。ユーザーが入力した名前をVectorに保存し、「保存」ボタンでリストに追加、「更新」ボタンでListViewを再描画するというシンプルなサンプルアプリを作成します。 手順1:新規プロジェクトを作成する まず、Android Studioで新しいプロジェクトを作成します。メニューから「File」→「New Project」を選択し、必要な項目を