1. 概念简介 与字节缓冲流BufferedInputStream和BufferedOutputStream对应的,我们还有字符缓冲流BufferedReader和BufferedWriter,顾名思义,它们是带有字符缓冲区的字符输入输出流,原理跟字节缓冲流一样,这两个流也是使用装饰模式对底层字符流进行了包装,并通过字符缓冲区来提高I/O效率,这里不再详细说明.唯一需要注意的是,相对于它们的父类,则两个流分别都新增了一些自己的方法,如下所示: BufferedReader新增方法: String…
IO流的基本流情况: 字符流:                字符流缓冲区: FileReader              BufferedReader FileWriter               BufferedWriter   字节流:                字节流缓冲区: FileInputStream       BufferedInputStream FileOutputStream     BufferedOutputStream   在ReadInDemo.java…
一.基本介绍: 1.节点流可以从一个特定的数据源读写数据,如FileReader. FileWriter 如图:字节流是直接对数据源(文件,数组之类存放数据的地方)进行操作 2.处理流(也叫包装流)是"连接"在已存在的流(节 点流或处理流)之上,为程序提供更为强大的读写功能,也更加灵活,如BufferedReader.BufferedWriter 3.节点流和处理流的区别和联系: 1).节点流是底层流/低级流,直接跟数据源相接.2).处理流(包装流)包装节点流,既可以消除不同节点流的实…
BufferedOutputStream,FileInputStream,FileOutputStream,BufferedInputStream,BufferedReader,BufferedWriter,FileInputStream,FileReader,FileWriter,InputStreamReader每一种流都介绍到了,详细一目了然的详细 下面是字节流常见操作的四种方式: import java.io.BufferedOutputStream; import java.io.Fi…
字符流,读取的文件是字符的时候,有两个基类一个是Reader,一个是Writer这有点拟人的感觉,人直接看懂的是文字 字符流 字节流:读取的是文件中的二进制字节流并不会帮你转换成看的懂得字符 字符流:字符流会把读到的二进制的数据进行对应的编码解码工作. 字符流 = 字节流+编码(解码) 输入字符流Reader 输入字符流的基类 抽象类 |--FileReader 读取文件的输入字符流 FIleReader的用法: 1.找到目标文件 2.建立数据的输入通道 3.读取数据 4.关闭资源 FileWr…
IO流 IO流用来处理设备之间的数据传输 java对数据的操作是过流的方式 流按操作数据分为两种:字节流与字符流 流按流向分为:输入流,输出流. IO流常用基类 字节流的抽象基类:InputStream OutputStream 字符流的抽象基类:Reader,Writer 由这四个类派生出来的子类名称都是以其父类作为子 类名的后缀. 如InputStream 的子类 FileInpuStream Reader的子类FileReader 数据的最常见的形式是:文件 字符读取缓冲区: class…
BufferedReader和BufferedWriter出现的目的是为了对FileReader以及FileWriter的读写操作进行增强,而怎么增强呢,原理类似于使用StringBuilder,是把数据先放入他们的一个char数组中,然后再操作char数组. 使用缓冲区的字符流是使用了装饰着模式对FileReader等进行功能上的增强,装饰者模式与继承都可以实现功能上的增强,但是装饰者可以做得更加的灵活,也不会使继承树变得太过复杂. 以下是BufferedWriter源码的一小部分 publi…
###21.01_IO流(字符流FileReader) * 1.字符流是什么     * 字符流是可以直接读写字符的IO流     * 字符流读取字符, 就要先读取到字节数据, 然后转为字符. 如果要写出字符, 需要把字符转为字节再写出.     * 2.FileReader     * FileReader类的read()方法可以按照字符大小读取 *          FileReader fr = new FileReader("aaa.txt");                …
在上一篇文章中Java IO流学习总结三:缓冲流-BufferedInputStream.BufferedOutputStream介绍了缓冲流中的字节流,而这一篇着重介绍缓冲流中字符流BufferedReader.BufferedWriter. 类的继承关系 Reader |__ BufferedReader.StringReader.InputStreamReader |__ FileReader Writer |__ BufferedWriter.StringWriter.OutputStr…
Buffered字符包装流 与Buffered字节装饰流一样,只不过是对字符流进行包装. 需要注意的地方 Buffered字符流在Reader与Writer上有两个新的方法:String readLine()与 void newLine() 所以Buffered字符流不能够使用多态,也就是:Writer w = new BufferedWriter(); 这样虽然不报错,但使用不了新的这两个方法. 构造方法 需要特别提到的一个构造其:BufferedWriter(Writer w,int sz)…
什么是缓冲流: 缓冲流的基本原理,是在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写的效率. 图解: 1.字节缓冲流BufferedInputStream:BufferedOutputStream: public BufferedInputStream(InputStream in) :创建一个 新的缓冲输入流. public BufferedOutputStream(OutputStream out) : 创建一个新的缓冲输出流. 案例对比:…
今天在编写hadoop程序的时候,用到了流的处理.关闭流的时候出现了问题: 代码: FSDataInputStream fsin = fs.open(new Path(filein)); FSDataOutputStream fsout = fs.append(new Path(fileout)); BufferedReader br = new BufferedReader(new InputStreamReader(fsin)); BufferedWriter bw = new Buffer…
JAVA IO操作总结:节点流和处理流 JAVA IO操作总结--节点流和处理流  按照流是否直接与特定的地方(如磁盘.内存.设备等)相连,分为节点流和处理流两类. 节点流:可以从或向一个特定的地方(节点)读写数据.如FileReader 处理流:是对一个已存在的流的连接和封装,通过所封装的流的功能调用实现数据读写.如BufferedReader.处理流的构造方法总是要带一个其他的流对象做参数.一个流对象经过其他流的多次包装,称为流的链接. 常用的节点流 父 类 InputStream Outp…
结点流:直接对File类进行操作的文件流 package stream; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import org.junit.jupiter.api.Test; /* * 流的体系结构: 抽象基类 节点流(或文件流) 缓冲流(处理流的一…
个人博客网:https://wushaopei.github.io/    (你想要这里多有) 1.File类型 1.1.File类的理解 File类是在java.io包下 File可以理解成一个文件(.mp3  .mp4 .txt)或者一个目录 File没向文件写入数据的功能.只创建,删除,文件大小等方法. File可以理解成流的终端. 我们经常将File的对象作为实参传入到流的构造器中 File 能新建.删除.重命名文件和目录,但 File 不能访问文件内容本身.如果需要访问文件内容本身,则…
节点流:可以从或向一个特定的地方(节点)读写数据.如FileReader. 处理流:是对一个已存在的流的连接和封装,通过所封装的流的功能调用实现数据读写.如BufferedReader.处理流的构造方法总是要带一个其他的流对象做参数.一个流对象经过其他流的多次包装,称为流的链接. JAVA常用的节点流: 文 件 FileInputStream FileOutputStrean FileReader FileWriter 文件进行处理的节点流. 字符串 StringReader StringWri…
理解好Java-IO中的节点流和处理流是理解Java输入.输出的关键基础,因此,了解节点流和处理流相关的知识点尤为重要. 1.定义 (1)节点流:可以从或向一个特定的地方(节点)读写数据.如FileReader. (2)处理流(用来包装节点流):是对一个已存在的流的连接和封装,通过所封装的流的功能调用实现数据读写.如BufferedReader.处理流的构造方法总是要带一个其他的流对象做参数.一个流对象经过其他流的多次包装,称为流的链接. 2.区别与联系 (1)节点流是低级流,直接跟数据源相接.…
InputStream是字节流,InputStreamReader将字节流转成字符流,BufferedReader将字符流转成字符缓冲,开始读字符. 1.InputStream.OutputStream 处理字节流的抽象类 InputStream 是字节输入流的所有类的超类,一般我们使用它的子类,如FileInputStream等. OutputStream是字节输出流的所有类的超类,一般我们使用它的子类,如FileOutputStream等. 2.InputStreamReader  Outp…
IO流根据处理对象的不同分为节点流和处理流. 直接对文件进行处理的流为节点流: 对流进行包装从而实现对文件的优化处理的流为处理流. 节点流类型: 可以看出,节点流主要分这几大类: 文件流 文件流构造方法概要(FileInputStream和FileOutputStream构造相同于对应的Reader和Writer): 数组流 字符串流 管道流 节点流里面的Reader/Writer和InputStream/OutputStream分别继承自相应的父类. 处理流类型: 处理流的几个常用类: 缓冲流…
Java IO流学习总结三:缓冲流-BufferedInputStream.BufferedOutputStream 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/54894451 本文出自[赵彦军的博客] InputStream |__FilterInputStream |__BufferedInputStream 首先抛出一个问题,有了InputStream为什么还要有BufferedInputStream? Buffere…
1.File类 File类可以在程序中 操作文件和目录.File类是通过建立File类对象,在调用File类的对象来进行相关操作的. 示例: public class Demo01 { public static void main(String[] args) { File f = new File("f:/我的歌声里.txt"); //访问文件名相关 String name = f.getName(); System.out.println("文件名:" + n…
BufferedReader 与 BufferedWriter 字符缓冲输入/输出流,是处理流.意味着使用这两个流需要包装节点流. 如节点流FileReader fr = new FileReader("test.java"); 用于读取文件test.java中的字符. 处理流BufferedReader br = new BufferedReader(fr); 通过包装节点流fr,读取文件test.java中的文件. 相比于节点流直接处理(读/写)文件,缓冲流多了一步,这样做的好处在…
1. 概念简介 BufferedInputStream和BufferedOutputStream是带缓冲区的字节输入输出处理流.它们本身并不具有IO流的读取与写入功能,只是在别的流(节点流或其他处理流)上加上缓冲功能以提高效率,就像是把别的流包装起来一样,因此缓冲流是一种处理流.事实上,这两个处理流(BufferedInputStream和 BufferedOutputStream),加上BufferedReader和BufferedWriter,这四个流在设计时使用到的正是装饰设计模式,通过装…
IO流 用来处理设备之间的数据传输,java对数据的操作是通过流的方式,java用于操作流的对象都在IO包中 按操作数据分为:字节流和字符流:按流向分为:输入流和输出流. 程序从输入流中读取数据,向输出流中写入数据. 字节流的抽象基类:Inputstream  和 OutputStream:字符流的抽象基类:Reader 和 Writer 其他流均是继承这4个抽象类而来的. 转换流 转换流也是一种包装流,其中OutputStreamWriter是Writer的子类,可以将一个字节流输出流包装成字…
一.缓冲流的使用 每个字节流都有对应的缓冲流: BufferedInputStream / BufferedOutputStream 构造器: 方法摘要与对应节点流类似 使用缓冲流实现文件复制:实际中也是:其中流的关闭只需要关闭缓冲流,内部嵌套的字节流会自动关闭. @Test public void testBuffered1() { // 同样需要先关联文件,注意文本使用Reader Writer,非文本使用fis fos File file1 = new File("D:\\test\\1.…
BufferInputStream和BufferOutputStream的特点: 缓冲字节输入输出流,缓冲流是处理流,它不直接连接数据源/目的地,而是以一个字节流为参数,在节点流的基础上提供一些简单操作. 先说不带缓冲流的工作原理吧,它读取到一个字节/字符,就向用户指定的路径写出去,读一个写一个,所以就慢了,带缓冲流的工作原理,读取到一个字节/字符,先不输出,等凑足了缓冲的最大容量后一次写出去,从而提高了工作效率. 优点:减少对硬盘的读取次数,降低对硬盘的损耗. 附: import java.i…
通过对文件的拷贝来对比传统IO流和NIO流 将底层流封装成处理流以后进行分段读取. /*将本身源代码拷贝到TXT文件*/ public class TraditionIO { public static void main(String[] args) { try(BufferedReader br = new BufferedReader(new FileReader("src/com/ming/test/TraditionIO.java")); //准备输入输出"处理&q…
字节缓冲流:(BufferedInputStream,BufferedOutStream) *按照流的功能来分:节点流和处理流 *节点流可以直接操作数据源: *InputStream *--FileInputStream *OutputStream *--FileOutputStream *Reader *--FileReader *Writer *--FileWriter *处理流:不能直接操作数据源,要结合节点流进行使用,主要作用是用于简化操作和提高效率. *--缓冲流 *字节缓冲流:Buf…
处理流之一:缓冲流1.为了提高数据读写的速度,Java API提供了带缓冲功能的流类,在使用这些流类时,会创建一个内部缓冲区数组,缺省使用8192个字节(8Kb)的缓冲区. 2.缓冲流要“套接”在相应的节点流之上,根据数据操作单位可以把缓冲流分为:➢BufferedInputStream 和 BufferedOutputStream➢BufferedReader 和 BufferedWriter 1.当读取数据时,数据按块读入缓冲区,其后的读操作则直接访问缓冲区.2.当使用BufferedInp…
1.IO简介 IO(输入输出)通过java.io包下的类和接口来支持,包下包括输入.输出两种IO流,每种输入输出流又可分为字符流和字节流两大类. 2.File类 File类是io包下与平台无关的文件和目录,File能新建.删除.重命名文件和目录,不能访问文件本身,后者需要使用输入输入流. 2.1 构造方法 File类的构造方法: File(File parent, String child) 参数:父路径,子路径 根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实…