BufferedInputStream字节缓冲输入流,缓冲流的效率测试_复制文件
作者:互联网
BufferedInputStream字节缓冲输入流:
java.io.BufferedInputstream extends Inputstream
BufferedinputStream:字书缓冲输入流
继承自父类的成员方法:
int read()从输入流中读取数据的下一个字节。
int read(byte[ ] b)从输入流中读取一定数量的字节,并将其存储在缓冲区数组b中。
void close()关闭此输入流并释放与该流关联的所有系统资源。
构造方法:
BufferedInputStream(InputStreom in)创建一个BufferedInputStream并保存其参数,即瑜入流 in,以便将来使用。
BufferedInputStream(InputStream in,int size)创建具有指定缓冲区大小的 BufferedInputStreom并保存其参数,即输入流
参数:
InputStream in :字节输入流
我们可以传递FiLeInputstream ,缓冲流会给FiLeInputStreaom增加一个缓冲区,提高FiLeInputStreom的读取效率
int size:指定缓冲流内部缓冲区的大小,不指定默认
使用步骤(重点):
1.创建FileInputstream对象,构造方法中绑定要读取的数据源
2.创建BufferedInputStream对象,构造方法中传递FiLeInputStream对象,提高FiLeInputStream对象的读取效率
3.使用BufferedInputStream对象中的方法read,读取文件
4 .释放资源
public class huanchong { public static void main(String[] args) throws IOException { //1.创建FiLeInputStream对象,构造方法中绑定要读取的数据源 FileInputStream stream = new FileInputStream(""); //2.创建BufferedInputStream对象,构造方法中传递FiLeInputStream对象,提高FiLeInputStream对象的读取效率 BufferedInputStream stream1 = new BufferedInputStream(stream); //3.使用Bufferedinputstream对象中的方法read,读取文件 //int read()从输入流中读取数据的下一个字节。 /** * int len = 0;//记录每次读取到的字节 * whiLe( ( Len = bis.read( ) )!=-1){ * system.out.println(Len); * } */ //int read(byte[] b)从输入流中读取一定数量的字节,并将其存储在缓冲区数组b中 byte[] bytes = new byte[1024];//存储每次读取的数据 int len = 0; //记录每次读取的有效字节个数 while ((len = stream1.read(bytes)) !=-1){ System.out.println(new String(bytes,0,len)); } //释放资源 stream1.close(); } }
缓冲流的效率测试_复制文件:
明确:
数据源:c:\\1.jpg
数据的目的地:d :\\1.jpg
文件复制的步骤:
1.创建字节缓冲输入流对象,构造方法中传递字节输入流
2.创建字节缓冲输出流对象,构造方法中传递字节输出流
3.使用字节缓冲输入流对象中的方法read,读取文件
4.使用字节缓冲输出流中的方法write,把读取的数据写入到内部缓冲区中
5.释放资源(会先把缓冲区中的数据,刷新到文件中)
文件的大小:780,831字节
一次读写一个字节:32毫秒
使用数组缓冲读取多个字书,写入多个字节:5毫秒
public class xiaolv { public static void main(String[] args) throws IOException { long s = System.currentTimeMillis(); //1.创建字节缓冲输入流对象,构造方法中传递字节输入流 BufferedInputStream bis = new BufferedInputStream(new FileInputStream("E:\\thr\\222.txt")); //2.创建字节缓冲输出流对象,构造方法中传递字节输出流 如果有同名文件会覆盖掉他然后什么内容都没有 BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("E:\\zhj\\222.txt")); //3.使用字节缓冲输入流对象中的方法read,读取文件 //一次读取一个字节写入一个字节的方式 /*int len = 0; while((len = bis.read())!=-1){ bos.write(len); }*/ //使用数组缓冲读取多个字节,写入多个字节 byte[] bytes = new byte[1024]; int len = 0; while((len = bis.read(bytes))!=-1){ System.out.println(new String(bytes,0,len)); bos.write(bytes,0,len); } bos.close(); bis.close(); long e = System.currentTimeMillis(); System.out.println("复制文件共耗时:"+(e-s)+"毫秒"); } }
搜索
复制
标签:字节,BufferedInputStream,缓冲,len,read,读取 来源: https://www.cnblogs.com/hungui/p/16473321.html