在此示例中,我們將學(xué)習(xí)將輸入流轉(zhuǎn)換為Java中的字節(jié)數(shù)組。
要理解此示例,您應(yīng)該了解以下Java編程主題:
import java.io.InputStream;
import java.util.Arrays;
import java.io.ByteArrayInputStream;
public class Main {
public static void main(String args[]) {
try {
//創(chuàng)建輸入流
byte[] input = {1, 2, 3, 4};
InputStream stream = new ByteArrayInputStream(input);
System.out.println("Input Stream: " + stream);
//將輸入流轉(zhuǎn)換為字節(jié)數(shù)組
byte[] array = stream.readAllBytes();
System.out.println("字節(jié)數(shù)組: " + Arrays.toString(array));
stream.close();
}
catch (Exception e) {
e.getStackTrace();
}
}
}輸出結(jié)果
Input Stream: java.io.ByteArrayInputStream@27082746 字節(jié)數(shù)組: [1, 2, 3, 4]
在上面的示例中,我們創(chuàng)建了一個(gè)名為stream的輸入流(InputStream)。注意這一行,
byte[] array = stream.readAllBytes();
在這里,readAllBytes()方法從流返回所有數(shù)據(jù)并將其存儲(chǔ)在字節(jié)數(shù)組中。
注意:我們已使用Arrays.toString()方法將整個(gè)數(shù)組轉(zhuǎn)換為字符串。
import java.io.InputStream;
import java.util.Arrays;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
public class Main {
public static void main(String args[]) {
try {
//創(chuàng)建輸入流
byte[] input = {1, 2, 3, 4};
InputStream stream = new ByteArrayInputStream(input);
System.out.println("Input Stream: " + stream);
//創(chuàng)建一個(gè)輸出流
ByteArrayOutputStream output = new ByteArrayOutputStream();
//創(chuàng)建一個(gè)字節(jié)數(shù)組來(lái)存儲(chǔ)輸入流
byte[] array = new byte[4];
int i;
//從輸入流讀取所有數(shù)據(jù)到數(shù)組
while ((i = stream.read(array, 0, array.length)) != -1) {
//將數(shù)組中的所有數(shù)據(jù)寫入輸出
output.write(array, 0, i);
}
byte[] data = output.toByteArray();
//將輸入流轉(zhuǎn)換為字節(jié)數(shù)組
System.out.println("Byte Array: " + Arrays.toString(data));
stream.close();
}
catch (Exception e) {
e.getStackTrace();
}
}
}輸出結(jié)果
Input Stream: java.io.ByteArrayInputStream@27082746 Byte Array: [1, 2, 3, 4]
在上面的示例中,我們從array創(chuàng)建了一個(gè)輸入流input。注意表達(dá)式
stream.read(array, 0, array.length)
在這里,流中的所有元素都存儲(chǔ)在數(shù)組中,從索引0開(kāi)始。然后,我們將數(shù)組的所有元素存儲(chǔ)到名為output的輸出流中。
output.write(array, 0, i)
最后,我們調(diào)用 ByteArrayOutputStream 類的toByteArray()方法,將輸出流轉(zhuǎn)換為名為data的字節(jié)數(shù)組。