package com.qiang.IO2;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
public class BufferedInputStreamTest {
public static void input(){
FileInputStream fileInputStream = null;
BufferedInputStream bufferedInputStream = null;
try {
fileInputStream = new FileInputStream("D:/Ideal wrok space/aa.txt");
//创建带有缓冲区的输入流
//参数1 某个输入流对象,Java会根据这个流创建所对应的带有缓冲区的输入流
//参数2 指定缓冲区的大小默认值为8192 不推荐修改参数
bufferedInputStream = new BufferedInputStream(fileInputStream);
byte[] bytes = new byte[1024];
int len = 0;
while ((len= bufferedInputStream.read(bytes))>=0){
System.out.println(new String(bytes, 0,len));
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
if (bufferedInputStream != null){
try {
//装饰模式 , 他会对原有的类进行功能性的增强,例如bufferedInputStream就是FileInputStream的装饰者
//他对FileInputStream进行了增强, 让他拥有缓冲
bufferedInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
public static void main(String[] args) {
input();
}
}
package com.qiang.IO2;
import java.io.BufferedOutputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class BufferOutputStreamTest {
public static void main(String[] args) {
output();
}
/**
* 带有缓冲区的输出数据输出实际
* 1.当缓冲区存盘以后会自动刷新一个缓冲区, 默认缓冲区的大小为8192可以通过构造方法的参数2指定这个缓冲区
* 2. 手动调用福禄寿()立即执行缓冲区的刷新,间数据输出到指定的位置(推荐手动调用)
* 3. 关闭流的是也会刷新也会刷新缓冲区
*/
public static void output() {
FileOutputStream fileOutputStream = null;
BufferedOutputStream bufferedOutputStream = null;
try {
fileOutputStream = new FileOutputStream("D:/Ideal wrok space/bb.txt");
bufferedOutputStream = new BufferedOutputStream(fileOutputStream);
byte[] bytes = "好好学习,天天向上".getBytes();
bufferedOutputStream.write(bytes);
bufferedOutputStream.flush();
//手动刷新缓冲区,推荐在执行完write方法后手动刷新, 刷新后,回见缓冲区中的内容输出到指定的位置
//折磨做的目的的是为了防止数据丢失
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
bufferedOutputStream.close(); //关闭缓冲区输出流并刷新缓冲区
} catch (IOException e) {
e.printStackTrace();
}
}
}
}