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

通过从字节数组创建新的String

这种方法首先将给定的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+ 次浏览

启动您的职业生涯

完成课程获得认证

开始学习
广告