C#でバイト配列をストリームに変換する方法|MemoryStreamの使い方を解説
C#におけるStream(ストリーム)は、すべてのストリームクラスの抽象基底クラスであり、バイト列に対する汎用的なビューを提供します。ストリームオブジェクトは、「読み込み(Reading)」「書き込み(Writing)」「シーク(Seeking)」という3つの基本操作をサポートしており、必要に応じて位置をリセットできるため、パフォーマンスの向上にもつながります。
バイト配列からMemoryStreamへの変換
バイト配列(byte配列)は、MemoryStreamクラスを使うことで簡単にメモリストリームへ変換できます。コンストラクタにバイト配列を渡すだけで、その内容を保持するストリームが生成されます。
MemoryStream stream = new MemoryStream(byteArray);
サンプルコード
ここでは、1〜5の5つの値を持つバイト配列を例に、MemoryStreamへ変換して読み込む方法を見ていきましょう。
using System;
using System.IO;
namespace DemoApplication {
class Program {
static void Main(string[] args) {
byte[] byteArray = new byte[5] {1, 2, 3, 4, 5 };
using (MemoryStream stream = new MemoryStream(byteArray)) {
using (BinaryReader reader = new BinaryReader(stream)) {
for (int i = 0; i < byteArray.Length; i++) {
byte result = reader.ReadByte();
Console.WriteLine(result);
}
}
}
Console.ReadLine();
}
}
}コードのポイント
- MemoryStreamのコンストラクタにバイト配列を渡すことで、配列の内容をそのままストリームとして扱えます。
- BinaryReaderを使用すると、ストリームから1バイトずつ順番にデータを読み取ることができます。
- usingステートメントで囲むことで、使用後にストリームやリーダーが自動的に解放され、リソースリークを防げます。
実行結果
上記のコードを実行すると、以下のようにバイト配列の各値が順に出力されます。
1 2 3 4 5
このように、MemoryStreamクラスを利用すれば、バイト配列をストリームとして柔軟に操作でき、ファイルI/Oやネットワーク通信など、さまざまな場面で役立ちます。
-
【Android】配列をArrayListに変換する方法をサンプルコード付きで解説
このチュートリアルでは、Androidアプリ開発において配列(Array)をArrayListに変換する方法を、実際のサンプルコードとともにわかりやすく解説します。 配列からArrayListへの変換の基本 Javaでは、Arrays.asList()メソッドを使うことで、配列をリスト形式に変換できます。さらに、その結果をArrayListのコンストラクタに渡すことで、要素の追加や削除が自由に行える本格的なArrayListとして扱えます。 String[] array = new String[]{ANDROID, JSP, JAVA, STRUTS, HADOOP, JSF}; Arra
-
AndroidでJavaのBitmapをバイト配列(byte[])に変換する方法【サンプルコード付き】
このチュートリアルでは、Androidアプリ開発において、JavaのBitmap(ビットマップ)画像をバイト配列(byte[])へ変換する方法を、ステップごとに詳しく解説します。画像の圧縮・保存やネットワーク送信など、さまざまな場面で役立つ基本テクニックです。ステップ1:新規プロジェクトを作成するまずはAndroid Studioを起動し、メニューから「File」→「New Project」を選択しましょう。必要な項目をすべて入力して、新しいプロジェクトを作成します。ステップ2:レイアウトファイル(activity_main.xml)を編集するres/layout/activity_main.