buffer bufferinputStream,bufferoutputStream bufferReader bufferwriter
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
/*
void flush()
刷新缓冲输出流。
void write(byte[] b, int off, int len)
从指定的字节数组写入 len个字节,从偏移 off开始到缓冲的输出流。
void write(int b)
将指定的字节写入缓冲的输出流。
protected byte[] buf
存储数据的内部缓冲区。
protected int count
缓冲区中有效字节的数量。
Constructor and Description
BufferedOutputStream(OutputStream out)
创建一个新的缓冲输出流,以将数据写入指定的底层输出流。
BufferedOutputStream(OutputStream out, int size)
创建一个新的缓冲输出流,以便以指定的缓冲区大小将数据写入指定的底层输出流。
1.创建一个FileOutoutStream对象
2.创建BufferedoutputStream对象
3.使用write把数据写入内部缓冲区
4.使用flush刷新到文件
5.释放资源
*/
public class BufferedOutputStream01 {
public static void main(String[] args) throws IOException {
FileOutputStream fileOutputStream =new FileOutputStream("D:\\学习\\e.txt");
BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(fileOutputStream);
bufferedOutputStream.write("写入数据".getBytes());
bufferedOutputStream.flush();
fileOutputStream.close();
}
}
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;
/*
protected byte[] buf
存储数据的内部缓冲区数组。
protected int count
索引一大于缓冲区中最后一个有效字节的索引。
protected int marklimit
mark方法调用后,最大超前允许,后续调用 reset方法失败。
protected int markpos
pos字段在最后一个 mark方法被调用时的值。
protected int pos
缓冲区中的当前位置。
BufferedInputStream(InputStream in)
创建一个 BufferedInputStream并保存其参数,输入流 in ,供以后使用。 默认缓冲区大小
BufferedInputStream(InputStream in, int size)
创建 BufferedInputStream具有指定缓冲区大小,并保存其参数,输入流 in ,供以后使用。 指定缓冲区大小
*/
public class BufferedInputStream01 {
public static void main(String[] args) throws IOException {
FileInputStream fileInputStream =new FileInputStream("D:\\学习\\e.txt");
BufferedInputStream bufferedInputStream =new BufferedInputStream(fileInputStream);
// int len =0;
// while ((len=bufferedInputStream.read())!=-1){
// System.out.println(len);
// }
byte[] bytes =new byte[1024];
int len=0;
while ((len=bufferedInputStream.read(bytes))!=-1){
System.out.println(new String(bytes,0,len));
}
bufferedInputStream.close();
}
}
import java.io.*;
/*
练习复制
1.创建字节缓冲输入流,构造方法中传递输入流
2.创建字节缓冲输出流,构建方法中传递输出流
3.使用read读取文件
4.使用wrtie写入缓冲
5.释放资源,会先吧缓冲区的数据写入文件
*/
public class Copy01 {
public static void main(String[] args) throws IOException, InterruptedException {
long s =System.currentTimeMillis();//获取毫秒值
BufferedInputStream bufferedInputStream =new BufferedInputStream(new FileInputStream("D:\\学习\\a1\\1.png"));
BufferedOutputStream bufferedOutputStream =new BufferedOutputStream(new FileOutputStream("D:\\学习\\1.png"));
byte[] bytes= new byte[1024];
int len =0;//每次读取的有效字节个数
while ((len=bufferedInputStream.read(bytes))!=-1){
bufferedOutputStream.write(bytes,0,len);
}
bufferedInputStream.close();
bufferedOutputStream.close();
long e =System.currentTimeMillis();
System.out.println("文件复制时间"+(e-s)+"毫秒");
}
}