Java程式:將OutputStream轉換為String


將OutputStream轉換為String的過程在單元測試中經常用到,需要在顯示OutputStream內容之前檢查其內容。本文將講解Java程式如何將OutputStream轉換為String。

這裡,String是Java中的一個類,表示字元序列,而OutputStream類屬於java.io包,是表示位元組輸出流的類的超類。

使用toString()方法

toString()方法是java.io.ByteArrayOutputStream類的方法,它使用平臺的預設字元集將指定流的內容轉換為String。

示例

下面的Java程式使用toString()方法將OutputStream轉換為String。

import java.io.ByteArrayOutputStream;
import java.io.IOException;
public class ByteArrayOutputStreamDemo {
   public static void main(String[] args) throws IOException {
      String str = "";
	  // given byte array
      byte[] bs = {65, 66, 67, 68, 69};
      ByteArrayOutputStream baos = null;
      try {
         // create new ByteArrayOutputStream
         baos = new ByteArrayOutputStream();
         // write byte array to the output stream
         baos.write(bs);
         // converts buffers using default character set
         str = baos.toString();
         // print
         System.out.println("Output Stream into String:: " + str);
      } catch(Exception e) {
         // if I/O error occurs
         e.printStackTrace();
      } finally {
         if(baos!=null)
            baos.close();
      }
   }
}

以上程式碼的輸出如下:

Output Stream into String:: ABCDE

透過從位元組陣列建立新字串

在這種方法中,首先將給定的OutputStream轉換為位元組陣列,然後使用該陣列建立一個新的字串。結果,您將獲得給定OutputStream的字串表示形式。

示例

讓我們看看上面討論的方法的實際演示:

import java.io.*;
public class ByteArrayOutputStreamDemo {
   public static void main(String[] args) throws IOException {
      // Given string 
      String str = "TUTORIALSPOINT";
      ByteArrayOutputStream baos = null;
      try {
         // create new ByteArrayOutputStream
         baos = new ByteArrayOutputStream();
         // write string to the output stream
         baos.write(str.getBytes());
         // Convert OutputStream to byte array
         byte[] byteArr = baos.toByteArray();
         // Convert byte array to String
         String newStr = new String(byteArr);
         // print result
         System.out.println("Output Stream into String:: " + newStr);
      } catch(Exception e) {
         // if I/O error occurs
         e.printStackTrace();
      } finally {
         if(baos!=null)
            baos.close();
      }
   }
}

執行以上程式碼後,將顯示以下結果:

Output Stream into String:: TUTORIALSPOINT

更新於:2024年8月5日

1K+瀏覽量

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告