在此示例中,我們將學(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開始。然后,我們將數(shù)組的所有元素存儲(chǔ)到名為output的輸出流中。
output.write(array, 0, i)
最后,我們調(diào)用 ByteArrayOutputStream 類的toByteArray()方法,將輸出流轉(zhuǎn)換為名為data的字節(jié)數(shù)組。