C#
 Computer >> コンピューター >  >> プログラミング >> C#

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やネットワーク通信など、さまざまな場面で役立ちます。

  1. 【Android】配列をArrayListに変換する方法をサンプルコード付きで解説

    このチュートリアルでは、Androidアプリ開発において配列(Array)をArrayListに変換する方法を、実際のサンプルコードとともにわかりやすく解説します。 配列からArrayListへの変換の基本 Javaでは、Arrays.asList()メソッドを使うことで、配列をリスト形式に変換できます。さらに、その結果をArrayListのコンストラクタに渡すことで、要素の追加や削除が自由に行える本格的なArrayListとして扱えます。 String[] array = new String[]{ANDROID, JSP, JAVA, STRUTS, HADOOP, JSF}; Arra

  2. AndroidでJavaのBitmapをバイト配列(byte[])に変換する方法【サンプルコード付き】

    このチュートリアルでは、Androidアプリ開発において、JavaのBitmap(ビットマップ)画像をバイト配列(byte[])へ変換する方法を、ステップごとに詳しく解説します。画像の圧縮・保存やネットワーク送信など、さまざまな場面で役立つ基本テクニックです。ステップ1:新規プロジェクトを作成するまずはAndroid Studioを起動し、メニューから「File」→「New Project」を選択しましょう。必要な項目をすべて入力して、新しいプロジェクトを作成します。ステップ2:レイアウトファイル(activity_main.xml)を編集するres/layout/activity_main.