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 ByteArrayOutputStream 類

在本教程中,我們將借助示例學(xué)習(xí)Java ByteArrayOutputStream及其方法。

java.io包的ByteArrayOutputStream類可用于寫入輸出數(shù)據(jù)數(shù)組(以字節(jié)為單位)。

它繼承了OutputStream抽象類。

ByteArrayOutputStream是Java OutputStream的子類。

注意:在ByteArrayOutputStream中維護(hù)一個(gè)存儲(chǔ)數(shù)據(jù)的內(nèi)部字節(jié)數(shù)組。

創(chuàng)建一個(gè)ByteArrayOutputStream

為了創(chuàng)建字節(jié)數(shù)組輸出流,我們必須首先導(dǎo)入java.io.ByteArrayOutputStream包。導(dǎo)入包后,就可以創(chuàng)建輸出流。

//創(chuàng)建一個(gè)默認(rèn)大小的ByteArrayOutputStream
ByteArrayOutputStream out = new ByteArrayOutputStream();

在這里,我們創(chuàng)建了一個(gè)輸出流,它將數(shù)據(jù)寫入默認(rèn)大小為32字節(jié)的字節(jié)數(shù)組中。但是,我們可以更改數(shù)組的默認(rèn)大小。

//創(chuàng)建具有指定大小的ByteArrayOutputStream
ByteArrayOutputStream out = new ByteArrayOutputStream(int size);

在此,size指定數(shù)組的長(zhǎng)度。

ByteArrayOutputStream的方法

ByteArrayOutputStream類提供OutputStream類中存在的不同方法的實(shí)現(xiàn)。

write()方法

  • write(int byte) - 將指定的字節(jié)寫入輸出流

  • write(byte[] array) - 將指定數(shù)組中的字節(jié)寫入輸出流

  • write(byte[] arr, int start, int length)- 從位置start開始將等于length的字節(jié)數(shù)寫入數(shù)組的輸出流

  • writeTo(ByteArrayOutputStream out1) -將當(dāng)前輸出流的全部數(shù)據(jù)寫入指定的輸出流

示例:ByteArrayOutputStream寫入數(shù)據(jù)

import java.io.ByteArrayOutputStream;

class Main {
  public static void main(String[] args) {

    String data = "This is a line of text inside the string.";

    try {
    //創(chuàng)建一個(gè)輸出流
      ByteArrayOutputStream out = new ByteArrayOutputStream();
      byte[] array = data.getBytes();

      //將數(shù)據(jù)寫入輸出流
      out.write(array);

      //以字符串格式從輸出流檢索數(shù)據(jù)
      String streamData = out.toString();
      System.out.println("輸出流: " + streamData);

      out.close();
    }

    catch(Exception e) {
      e.getStackTrace();
    }
  }
}

輸出結(jié)果

輸出流: This is a line of text inside the string.

在上面的示例中,我們創(chuàng)建了一個(gè)名為的字節(jié)數(shù)組輸出流output。

ByteArrayOutputStream output = new ByteArrayOutputStream();

要將數(shù)據(jù)寫入輸出流,我們使用了write()方法。

注意:程序中使用的getBytes()方法將字符串轉(zhuǎn)換為字節(jié)數(shù)組。

從ByteArrayOutputStream訪問數(shù)據(jù)

  • toByteArray() - 返回輸出流中存在的數(shù)組

  • toString() - 以字符串形式返回輸出流的全部數(shù)據(jù)

例如,

import java.io.ByteArrayOutputStream;

class Main {
  public static void main(String[] args) {
    String data = "This is data.";

    try {
      //創(chuàng)建輸出流
      ByteArrayOutputStream out = new ByteArrayOutputStream();

      //將數(shù)據(jù)寫入輸出流
      out.write(data.getBytes());

      //返回字節(jié)數(shù)組
      byte[] byteData = out.toByteArray();
      System.out.print("使用toByteArray()的數(shù)據(jù): ");
      for(int i=0; i<byteData.length; i++) {
        System.out.print((char)byteData[i]);
      }

      //返回一個(gè)字符串
      String stringData = out.toString();
      System.out.println("\n使用toString()的數(shù)據(jù): " + stringData);

      out.close();
    }

    catch(Exception e) {
      e.getStackTrace();
    }
  }
}

輸出結(jié)果

使用toByteArray()的數(shù)據(jù): This is data.
使用toString()的數(shù)據(jù): This is data.

在上面的示例中,我們創(chuàng)建了一個(gè)字節(jié)數(shù)組來存儲(chǔ)toByteArray()方法返回的數(shù)據(jù)。

然后使用for循環(huán)訪問數(shù)組中的每個(gè)字節(jié)。在這里,使用類型轉(zhuǎn)換將每個(gè)字節(jié)轉(zhuǎn)換為相應(yīng)的字符。

close()方法

要關(guān)閉輸出流,我們可以使用close()方法。

但是,close()方法在ByteArrayOutputStream類中無效。即使調(diào)用了close()方法,我們也可以使用此類的方法。

ByteArrayOutputStream的其他方法

方法內(nèi)容描述
size()返回輸出流中數(shù)組的大小
flush()清除輸出流
丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清