📜  Java.io.ByteArrayOutputStream() Java中的类

📅  最后修改于: 2022-05-13 01:55:51.465000             🧑  作者: Mango

Java.io.ByteArrayOutputStream() Java中的类

Java 中的 io.ByteArrayOutputStream() 类

Java.io.ByteArrayOutputStream类创建一个输出流,用于将数据写入字节数组。缓冲区的大小会随着数据的写入而自动增长。关闭 byteArrayOutputStream 对其方法的工作没有影响。即使在关闭课程后也可以调用它们。
因此,没有方法抛出 IO 异常。

宣言:

public class ByteArrayOutputStream
   extends OutputStream

领域:

  • protected byte[] buf – 存储数据的缓冲区。
  • protected int count – 缓冲区中的有效字节数。

    构造函数:

    • ByteArrayOutputStream() :创建一个新的 ByteArrayOutputStream 来写入字节
    • ByteArrayOutputStream(int buffersize) :创建一个新的 ByteArrayOutputStream 并带有buferrsize来写入字节。

    方法:

    • write(int byte) : Java.io.ByteArrayOutputStream.write(int byte)将指定的字节写入输出流。
      句法 :
      public void write(int byte)
      Parameters : 
      byte : byte to be written
      Return :                                               
      void
      
    • write(byte[] buffer, int offset, int maxlen) : Java.io.ByteArrayOutputStream.write(byte[] buffer, int offset, int maxlen)将数据的 maxlen 字节从缓冲区写入输出流。它使用指定的charsetName (16 位 Unicode 代码单元序列和字节序列之间的命名映射)转换流的内容。
      句法 :
      public void write(byte[] buffer, int offset, int maxlen)
      Parameters : 
      buffer : data of the buffer
      offset : starting in the destination array - 'buffer'.
      maxlen : maximum length of array to be read
      Return :                                               
      void
      
    • toByteArray() : Java.io.ByteArrayOutputStream.toByteArray()创建一个与输出流相同的新字节数组
      句法 :
      public byte[] toByteArray()
      Parameters : 
      ----------
      Return :                                               
      new byte array having the same as that of Output Stream
      

      Java程序解释了 write(byte[] buffer, int offset, int maxlen) 和 toByteArray() 方法的使用:

      // Java program illustrating the working of ByteArrayOutputStream
      // write(byte[] buffer, int offset, int maxlen), toByteArray()
        
      import java.io.*;
      public class NewClass
      {
          public static void main(String[] args) throws IOException
          {
              ByteArrayOutputStream geek_output = new ByteArrayOutputStream();
        
              byte[] buffer = {'J', 'A', 'V', 'A'};
        
              // Use of write(byte[] buffer, int offset, int maxlen)
              geek_output.write(buffer, 0, 4);
              System.out.print("Use of write(buffer, offset, maxlen) by toByteArray() : ");
        
              // Use of toByteArray() :
              for (byte b: geek_output.toByteArray())
              {
                  System.out.print(" " + b);
              }
          }
      }
      

      输出 :

      Use of write(buffer, offset, maxlen) by toByteArray() :  74 65 86 65
    • close() : Java.io.ByteArrayOutputStream.close()关闭输出流并释放分配的资源。
      句法 :
      public void close()
      Parameters : 
      --------------
      Return :                                               
      void
      
    • size() : Java.io.ByteArrayOutputStream.size()返回输出流中缓冲区的大小。
      句法 :
      public int size()
      Parameters : 
      --------------
      Return :                                               
      size of buffer present inside the Output Stream. 
      
    • reset() : Java.io.ByteArrayOutputStream.reset()将完整的流计数重置为零,并将帮助 Stream 重新启动
      句法 :
      public void reset()
      Parameters : 
      --------------
      Return :                                               
      void. 
      
    • toString() : Java.io.ByteArrayOutputStream.toStrign()将输出流的内容转换为平台的默认字符集
      句法 :
      public String toString()
      Parameters : 
      --------------
      Return :                                               
      the content of Output Stream by converting it to platform's default Character set
      
    • toString(String charsetName) : Java.io.ByteArrayOutputStream.toStrign(String charsetName)将输出流的内容转换为平台指定的字符集
      句法 :
      public String toString(String charsetName)
      Parameters : 
      --------------
      Return :                                               
      the content of Output Stream by converting it to platform's default Character set
      

      说明使用 ByteArrayOutputStream 类方法的Java程序:

      // Java program illustrating the working of ByteArrayOutputStream
      // write(), size(), toString(String charsetName),
      // close(), toString(), reset()
        
      import java.io.*;
      public class NewClass
      {
          public static void main(String[] args) throws IOException
          {
              ByteArrayOutputStream geek_output = new ByteArrayOutputStream();
        
              byte[] buffer = {'J', 'A', 'V', 'A'};
                
              for (byte a : buffer)
              {
                  // Use of write(int byte) :
                  geek_output.write(a);
              }
        
              // Use of size() :
              int size = geek_output.size();
              System.out.println("Use of size() : " + size);
        
              // Use of reset() :
              System.out.println("Use of reset()");
        
              // USe of toString() :
              String geek = geek_output.toString();
              System.out.println("Use of toString() : "+ geek);
        
              // Use of toString(String charsetName)
              String geek1 = geek_output.toString("UTF-8");
              System.out.println("Use of toString(String charsetName) : "+ geek1);
        
              // Closing the stream
              geek_output.close();
        
          }
      }
      

      输出 :

      Use of size() : 4
      Use of reset()
      Use of toString() : JAVA
      Use of toString(String charsetName) : JAVA