FileInputStream 属于数据源 BufferedInputStream 属于FileInputStream的一个装饰 BufferedInputStream 有个内部缓冲区当read时会先把缓冲区填满(默认缓冲区是8192),然后下次读取是直接从缓冲区读取.当读取的位置大于缓冲区时会再一次加载缓冲区. read()和read(byte[] buf, int off, int len)处理方式一样,区别在于后者一次返回多个数据,但是同样都是先放入缓冲区,然后再读取. 至于性能问题,我们…
一.InputStream和Reader的区别 InputStream和Reader都可以用来读数据(从文件中读取数据或从Socket中读取数据),最主要的区别如下: InputStream用来读取二进制数(字节流),而 Reader用来读取文本数据,即 Unicode字符.那么二进制数与文本数据有什么区别呢?从本质上来讲,所有读取的内容都是字节,要想把字节转换为文本,需要指定一个编码方法.而 Reader就可以把字节流进行编码从而转换为文本.当然,这个转换过程就涉及编码方式的问题,它默认采用系…
在解释Java中FileInputStream和FileReader的具体区别之前,我想讲述一下Java中InputStream和Reader的根本差异,以及分别什么时候使用InputStream和Reader.实际上, InputStream和Reader都是抽象类,并不直接地从文件或者套接字(socket)中读取数据.然而,它们之间的主要差别在于:InputStream用于读取二进制数据(字节流方式,译者注),Reader用于读取文本数据(字符流方式,译者注),准确地说,Unicode字符.…
1.IO流概述 · IO流用来处理设备之间的数据传输        · 上传文件和下载文件        · Java对数据的操作是通过流的方式 · Java用于操作流的对象都在IO包中   2.IO流分类         1)按照数据流向             输入流     读入数据             输出流     写出数据         2) 按照数据类型            字节流: 字节输入流 读取数据 InputStream 字节输出流 写出数据 OutputStrea…
我的技术博客经常被流氓网站恶意爬取转载.请移步原文:http://www.cnblogs.com/hamhog/p/3550158.html ,享受整齐的排版.有效的链接.正确的代码缩进.更好的阅读体验. [问题] FileInputStream & FileOutputStream 和 BufferedInputStream & BufferedOutputStream 都能完成文件的读写.它们在原理上.时间效率上有什么不同,实际应用时应该如何选择呢? [实验] 我们采用文件复制来做效率…
首先是对FileInputStream 加上 FileOutputStream 对文件拷贝的应用 我这里拷贝的是一个视频.当然,你们拷贝什么都可以,当文件越大时效果越明显 下面是对BufferedInputStream 和 BufferedOutputStream 对文本拷贝的应用 最后在主程序测试刚写的两个方法,分别计算它们的运行时间差,并输出到控制台 结果图:当拷贝的文件越大时,这个时间差就越明显.可以看出使用Buffered 缓冲的效率很高.…
FileInputStream inputStream = new FileInputStream("d://vv.mp4"); FileOutputStream outputStream = new FileOutputStream("v.mp4"); int len; // 一次读取一个字节,每读取一个字节都要实现一次与硬盘的交互操作 while ((len = inputStream.read()) != -1) { outputStream.write(le…
一.Java读取和存储文件数据流 Java读取文件,实际是将文件中的字节流转换成字符流输出到屏幕的过程   这里面涉及到两个类:InputStreamReader和OutputStreamWriter InputStreamReader:将字节流转换成字符流 OutputStreamWriter:将字符流转换成字节流   InputStreamReader继承Reader类 OutputStreamWriter继承Writer类   二.BufferedReader/FileReader/Inp…
在解释Java中FileInputStream和FileReader的具体区别之前,我想讲述一下Java中InputStream和Reader的根本差异,以及分别什么时候使用InputStream和Reader.实际上, InputStream和Reader都是抽象类,并不直接地从文件或者套接字(socket)中读取数据.然而,它们之间的主要差别在于:InputStream用于读取二进制数据(字节流方式,译者注),Reader用于读取文本数据(字符流方式,译者注),准确地说,Unicode字符.…
流 Stream 把数据的读写,抽象成数据在管道中流动. 流是单向的 输入流, 只能用来读取数据 输出流, 只能用来输出数据 流只能顺序读写数据 流只能一次性从头到尾读写数据 流动过的数据,不能反复流动 重复读写数据,只能重新新建流 InputStream/OutputStream 字节流的抽象父类 方法 write(int b); write(byte[]); write(byte[] , start, length); flush();刷出缓存数据 read(); read(byte[] b…