缓冲流的效率测试_复制文件和BufferedWriter_字符缓冲输出流
缓冲流的效率测试_复制文件
单个读取字符的时间
private static void show06() throws IOException { long l = System.currentTimeMillis(); //创建字节缓冲输入流对象,构造方法中传递字节输入流 BufferedInputStream bis = new BufferedInputStream(new FileInputStream("F:\\3.jpg")); //创建字节缓冲输出流对象,构造方法中传递字节输出流 BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("F:\\a\\3.jpg")); //使用字节缓冲输入流对象中的方法read,读取文件 int len = 0; while ((len=bis.read())!=-1){ bos.write(len); } bis.close(); bos.close(); long l1 = System.currentTimeMillis(); System.out.println("复制文件共耗时:"+(l1-l)+"毫秒"); }
使用数组进行复制的时间
private static void show06() throws IOException { long l = System.currentTimeMillis(); //创建字节缓冲输入流对象,构造方法中传递字节输入流 BufferedInputStream bis = new BufferedInputStream(new FileInputStream("F:\\3.jpg")); //创建字节缓冲输出流对象,构造方法中传递字节输出流 BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("F:\\a\\3.jpg")); //使用数组缓冲读取多个字节,写入多个字节 byte[] bytes = new byte[1024]; int len = 0; while ((len = bis.read(bytes))!=-1){ bos.write(bytes,0,len); } bis.close(); bos.close(); long l1 = System.currentTimeMillis(); System.out.println("复制文件共耗时:"+(l1-l)+"毫秒"); }
BufferedWriter_字符缓冲输出流
java.io.BufferedWriter extends Writer
BufferedWriter:字符缓冲输出流
构造方法:
BufferedWriter(Writer out) 创建一个使用默认大小输出缓冲区的缓冲字符输出流。
BufferedWriter(Writer out, int sz) 创建一个使用给定大小输出缓冲区的新缓冲字符输出流。
参数:
Writer out:字符输出流
可以传递FileWriter,缓冲流会给FileWriter增加一个缓冲区,提高FileWriter的写入效率
int sz:指定缓冲区的大小,不写默认大小
特有的成员方法:
void newLine() 写入一个行分隔符。会根据不同的操作系统,获取不同的行分隔符
private static void show07() throws IOException { //创建字符缓冲输出流对象,构造方法中传递字符输出流 BufferedWriter bw = new BufferedWriter(new FileWriter("F:\\a9.txt")); //调用字符缓冲输出流中的方法write,把数据写入到内存缓冲区中 for (int i = 0; i <10; i++) { bw.write("张三"); bw.newLine(); } //调用字符缓冲输出流中的方法flush,把内存缓冲区中的数据,刷新到文件中 bw.flush(); bw.close(); }