跟我学IO(ByteArrayOutputStream)

java的ByteArrayOutputStream类实现了一个输出流,其中的数据被写入一个 byte 数组。缓冲区会随着数据的不断写入而自动增长。可使用 toByteArray() 和 toString() 获取数据。

java的ByteArrayOutputStream类实现了一个输出流,其中的数据被写入一个 byte 数组。缓冲区会随着数据的不断写入而自动增长。可使用toByteArray()和toString()获取数据。使用该类能够将指定文件的数据在内存中进行缓存。

实例:将指定文件的内容读入到内存中,然后转换成一个字节数组。最后通过字符串输出到控制台。

package io.outputStream;

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

public class ByteArrayOutputStreamTest {

	public static void main(String[] args) {
		FileInputStream input = null;
		ByteArrayOutputStream output = null;
		
		try {
			input = new FileInputStream(new File("document/output.txt"));
			output = new ByteArrayOutputStream(2048);
			
			// 将从文件读取的数据写入到ByteArrayOutputStream中
			byte[] bytes = new byte[1024];
			int len = -1;
			while ( (len = input.read(bytes)) != -1 ) {
				output.write(bytes, 0, len);
			}
			
			// 从缓冲区中间信息输出
			byte[] buffer = output.toByteArray();
			System.out.println( new String(buffer) );
		} catch(Exception e) {
			e.printStackTrace();
		} finally {
			if ( null != input ) {
				try {
					input.close();
					input = null;
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
	}
	
}

从上面的实例可以看出ByteArrayOutputStream实际上就是一个内存缓冲区,用来将外部文件所有的数据使用byte数组进行缓存。

有勇气承担命运这才是英雄好汉。——黑塞
0 不喜欢
说说我的看法 -
全部评论(
没有评论
目录
热门标签
热门文章
关于
本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,请来信告知:hxstrive@outlook.com
公众号