Java 菜鳥教程

Java 流程控制

Java 數(shù)組

Java 面向?qū)ο?I)

Java 面向?qū)ο?II)

Java 面向?qū)ο?III)

Java 異常處理

Java 列表(List)

Java Queue(隊(duì)列)

Java Map集合

Java Set集合

Java 輸入輸出(I/O)

Java Reader/Writer

Java 其他主題

Java程序?qū)nputStream轉(zhuǎn)換為字節(jié)數(shù)組(bytearray)

Java 實(shí)例大全

在此示例中,我們將學(xué)習(xí)將輸入流轉(zhuǎn)換為Java中的字節(jié)數(shù)組。

要理解此示例,您應(yīng)該了解以下Java編程主題:

示例1:將InputStream轉(zhuǎn)換為字節(jié)數(shù)組的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)換為字符串。

示例2:使用輸出流將InputStream轉(zhuǎn)換為字節(jié)數(shù)組

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ù)組。

Java 實(shí)例大全

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清