importjava.io.ByteArrayOutputStream;importjava.io.IOException;importjava.io.OutputStream;publicclassOutputStreamToByteArrayOutputStream{publicstaticvoidmain(String[]args){// 创建ByteArrayOutputStreamByteArrayOutputStreambyteArrayOutputStream=newByteArrayOutputStream();// 输出数据到ByteArrayOutputStreamtry(Outpu...
正如@seh 正确注意到的那样, ByteArrayOutputStream.toByteArray() 返回支持对象的 副本 byte[] 对象,这可能效率低下。但是,支持 byte[] 对象以及字节数都是 ByteArrayOutputStream 类的受保护成员。因此,您可以创建自己的 ByteArrayOutputStream 变体,直接公开它们: public class MyByteArrayOutputStream extends Byt...
public class DrainableOutputStream extends FilterOutputStream { private final ByteArrayOutputStream buffer; public DrainableOutputStream(OutputStream out) { super(out); this.buffer = new ByteArrayOutputStream(); } @Override public void write(byte b[]) throws IOException { this.buffer.write(b); su...
首先,我们创建一个ByteArrayOutputStream实例。然后,使用输出流的writeTo方法将数据写入ByteArrayOutputStream。最后,通过调用toByteArray方法将ByteArrayOutputStream转化成字节数组。 完整示例 下面是将输出流转化成字节数组的完整示例: importjava.io.*;publicclassOutputStreamToByteArrayExample{publicstaticvoidmain(String[...
1、ByteArrayOutputStream,字节数组输出流,此类实现了一个输出流,其中的数据被写入一个 byte 数组。缓冲区会随着数据的不断写入而自动增长。可使用toByteArray()和toString()获取数据。 源代码如下: View Code 从源码可以看出,涉及到数据操作的方法都加了synchronized关键字,所以该类是安全同步的类。使用方法如下: ...
byte[] array = byteArrayOutputStream.toByteArray(); for (byte b : array) { System.out.print(b + "\t"); }} catch (IOException ex) { System.out.println(ex.getMessage());} 完整代码及运行 FileOutputStream 文件输出流是用于将数据写入 File 或 FileDescriptor 的输出流。文件是否可用或是否...
方法一:使用byte array缓存转换 代码示例如下 ByteArrayOutputStream baos=newByteArrayOutputStream();ByteArrayInputStream swapStream=newByteArrayInputStream(baos.toByteArray()); 这种方式最为简单,但是要求执行baos.toByteArray()这个方法之前,需要的数据已经完全写入,即无法做到边写边读,另外其需要足够的内存来一...
ByteArrayOutputStream的用法 以下是JDK中的记载: public class ByteArrayOutputStream extendsOutputStream 此类实现了一个输出流,其中的数据被写入一个 byte 数组。缓冲区会随着数据的不断写入而自动增长。可使用 toByteArray()和 toString()获取数据。 关闭ByteArrayOutputStream无效。此类中的方法在关闭此流后仍可被...
就是内存溢出了。估计你是一次性读取,这样不行,分块读,没块给个512b
public abstract byte[] convert(OutputStream out); The Java OutputStream class, as its name implies, only supports an overridden write() method for I/O, and that write() method gets either an integer (representing 1 byte) or a byte array, the contents of which it sends to an output ...