package day13;
import java.awt.image.BufferedImage;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import com.sun.org.apache.bcel.internal.generic.NEW;
import com.sun.org.apache.xalan.internal.xsltc.compiler.util.TestGenerator;
public class Test {
public static void main(String[] args) {
try {
Test.testBufferedInputStream();
// Test.testBufferedOutputStream();
// Test.copyFile();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 缓冲字节输入流
* BufferedInputStream
* @throws Exception
*/
public static void testBufferedInputStream() throws Exception {
//文件字节输入流对象
FileInputStream in = new FileInputStream("D:\\test\\javatest\\1.txt");
//把文件字节输入流放到缓存字节输入流对象
BufferedInputStream br = new BufferedInputStream(in);
byte[] b = new byte[100];
int len = 0;
while((len = br.read(b)) != -1 ){
System.out.println(new String(b ,0, len));
}
//关闭流的时候,本着应该最晚开的最早关,依次关
br.close();
in.close();
}
/**
* 缓存字节输出流
*
*/
public static void testBufferedOutputStream() throws Exception {
// 创建字节输出流对象
FileOutputStream out = new FileOutputStream("D:\\test\\javatest\\2.txt");
//把字节输出流对象放到缓冲字节输出流中
BufferedOutputStream bo = new BufferedOutputStream(out);
String s = "hello world";
bo.write(s.getBytes());//写到内存中
bo.flush();//刷到硬盘上
//关闭流的时候,本着一个最晚开的最早关,依次关
bo.close();
out.close();
}
/**
* 缓存流实现复制文件
*/
public static void copyFile() throws Exception{
//缓存输入流
BufferedInputStream br = new BufferedInputStream(new FileInputStream("D:\\test\\javatest\\1.txt"));
//缓存输出流
BufferedOutputStream bo = new BufferedOutputStream(new FileOutputStream("D:\\test\\javatest\\2.txt"));
byte[] b = new byte[1024];
int len = 0;//设置一个没读取到的数据的长度,自到br,read 方法执行到最后(比如说文件中只有hello world,执行到最后一个就读取d的后面,这个时候的返回值为-1)
while((len = br.read(b)) != -1){
bo.write(b, 0, len);//写入内存
}
bo.flush();//刷到硬盘
bo.close();
br.close();
}
}
缓冲字节流
于 2022-04-30 14:52:59 首次发布