Java ByteArrayInputStream クラス
Java ByteArrayInputStream クラス
このチュートリアルでは、例を使用して Java ByteArrayInputStream とそのメソッドについて学習します。
ByteArrayInputStream
java.io
のクラス パッケージを使用して、入力データの配列 (バイト単位) を読み取ることができます。
InputStream
を拡張します 抽象クラス。
注意 :ByteArrayInputStream
で の場合、入力ストリームはバイト配列を使用して作成されます。その特定のバイト配列のデータを格納するための内部配列が含まれています。
ByteArrayInputStream を作成する
バイト配列入力ストリームを作成するには、java.io.ByteArrayInputStream
をインポートする必要があります 最初にパッケージ。パッケージをインポートしたら、入力ストリームを作成する方法を次に示します。
// Creates a ByteArrayInputStream that reads entire array
ByteArrayInputStream input = new ByteArrayInputStream(byte[] arr);
ここでは、arr
からデータ全体を読み取る入力ストリームを作成しました。 配列。ただし、配列から一部のデータのみを読み取る入力ストリームを作成することもできます。
// Creates a ByteArrayInputStream that reads a portion of array
ByteArrayInputStream input = new ByteArrayInputStream(byte[] arr, int start, int length);
ここで、入力ストリームは length に等しいバイト数を読み取ります start から始まる配列から
ByteArrayInputStream のメソッド
ByteArrayInputStream
クラスは InputStream
に存在するさまざまなメソッドの実装を提供します クラス。
read() メソッド
read()
- 入力ストリームに存在する配列から 1 バイトを読み取りますread(byte[] array)
- 入力ストリームからバイトを読み取り、指定された配列に格納しますread(byte[] array, int start, int length)
- length に等しいバイト数を読み取ります ストリームから取得し、位置 start から始まる指定された配列に格納します
例:データを読み取るための ByteArrayInputStream
import java.io.ByteArrayInputStream;
public class Main {
public static void main(String[] args) {
// Creates an array of byte
byte[] array = {1, 2, 3, 4};
try {
ByteArrayInputStream input = new ByteArrayInputStream(array);
System.out.print("The bytes read from the input stream: ");
for(int i= 0; i < array.length; i++) {
// Reads the bytes
int data = input.read();
System.out.print(data + ", ");
}
input.close();
}
catch(Exception e) {
e.getStackTrace();
}
}
}
出力
The bytes read from the input stream: 1, 2, 3, 4,
上記の例では、input
という名前のバイト配列入力ストリームを作成しました。 .
ByteArrayInputStream input = new ByteArrayInputStream(array);
ここで、入力ストリームには、指定された配列からのすべてのデータが含まれます。入力ストリームからデータを読み取るために、 read()
を使用しました メソッド。
available() メソッド
入力ストリームで利用可能なバイト数を取得するには、 available()
を使用できます 方法。たとえば、
import java.io.ByteArrayInputStream;
public class Main {
public static void main(String args[]) {
// Creates an array of bytes
byte[] array = { 1, 2, 3, 4 };
try {
ByteArrayInputStream input = new ByteArrayInputStream(array);
// Returns the available number of bytes
System.out.println("Available bytes at the beginning: " + input.available());
// Reads 2 bytes from the input stream
input.read();
input.read();
// Returns the available number of bytes
System.out.println("Available bytes at the end: " + input.available());
input.close();
}
catch (Exception e) {
e.getStackTrace();
}
}
}
出力
Available bytes at the beginning: 4 Available bytes at the end: 2
上記の例では、
<オール>available()
を使用しました 入力ストリームで利用可能なバイト数をチェックするメソッドread()
を使用しました メソッドを 2 回呼び出して、入力ストリームから 2 バイトを読み取ります。skip() メソッド
指定されたバイト数を破棄してスキップするには、 skip()
を使用できます 方法。たとえば、
import java.io.ByteArrayInputStream;
public class Main {
public static void main(String args[]) {
// Create an array of bytes
byte[] array = { 1, 2, 3, 4 };
try {
ByteArrayInputStream input = new ByteArrayInputStream(array);
// Using the skip() method
input.skip(2);
System.out.print("Input stream after skipping 2 bytes: ");
int data = input.read();
while (data != -1) {
System.out.print(data + ", ");
data = input.read();
}
// close() method
input.close();
}
catch (Exception e) {
e.getStackTrace();
}
}
}
出力
Input stream after skipping 2 bytes: 3, 4,
上記の例では、skip() を使用しました。 入力ストリームから 2 バイトのデータをスキップするメソッド。したがって 1 と 2 入力ストリームから読み取られません。
close() メソッド
入力ストリームを閉じるには、 close()
を使用できます メソッド。
ただし、close()
メソッドは ByteArrayInputStream
では効果がありません クラス。 close()
の後でも、このクラスのメソッドを使用できます。 メソッドが呼び出されます。
ByteArrayInputStream のその他のメソッド
メソッド | 説明 |
---|---|
finalize() | 確実に close() メソッドが呼び出されます |
mark() | データが読み取られた入力ストリーム内の位置をマークします |
reset() | マークが設定された入力ストリーム内のポイントにコントロールを返します |
markSupported() | 入力ストリームが mark() をサポートしているかどうかをチェックします と reset() |
詳細については、Java ByteArrayInputStream (公式の Java ドキュメント) にアクセスしてください。
Java