博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IO流 总结一
阅读量:5294 次
发布时间:2019-06-14

本文共 1548 字,大约阅读时间需要 5 分钟。

字符流:

   FileReader

   FileWriter

  

   BufferedReader

   BufferedWriter

  

   readLine();

  

  字节流:

   FileInputReader

   FileOutputWriter

  

   BufferedInputstream

   BufferedOutputstream

  

   read();

  

  字节流转字符流:

   InputStreamReader

  字符流转字节流:

   OutputStreamWriter

  

  

 input  read是读入 从磁盘读到内存

 output write是写出 从内存写到磁盘

 

Buffered****.read() 都是从内存中取数据,

FileReader.read(); 从硬盘上取数据

 

 

 

字符流的缓冲区

 

缓冲区的出现提高了对数据的读写效率

所以在创建缓冲区之前,必须要有流对象。

对应类

BufferedWriter

BufferedReader

缓冲区要结合流才可以使用。

在流的基础上对流的功能进行了增强。

 

该缓冲区提供了一个跨平台的换行符。 newLine();

 

其实关闭缓冲区,就是在关闭缓冲区中的流对象。

 

bufw.close();

 

字符串取流缓冲区:

该缓冲区提供了一个一次读一行的方法,readLine,方便与文本数据的获取。

当返回null时,表示读到文件末尾。

 

readLine 方法返回的时候只返回回车符之前的数据内容,并不返回回车符

readLine 方法的原理 无论是读一行,获取读取多个字符,其实最终都是在硬盘上以一个读取。所以最终使用的还是read方法,一次读一个方法。

 

字节流:

InputStream OutputStram

需求,想要操作图片数据。这时需要用到字节流

 

如果直接使用字节流,没有指定使用缓冲区的话,是不用刷新的。

 

 

Buffered****.read() 都是从内存中取数据,

FileReader.read(); 从硬盘上取数据

 

读取键盘录入。

System.out:对应的是标准输出设备,控制台。

System.in:对应的是标准输入设备,键盘

Ctrl+z 往里面加结束标志或Ctrl+c

 

获取键盘录入对象。

 

将字节流对象转成字符流对象,使用转换流InputStreamReader

 

为了提高效率,将字符串进行缓冲区技术高效操作,使用BufferedReader;

 

 

字符流底层用的也是字节流那个缓冲区

 

键盘最常见写法

BufferedReader a = new BufferedReader(new InputStreamReader(System.in));

将字符流对象对象转成字节流

OutputStreamWriter 是字符流通向字节流的桥梁:可使用指定的 charset 将要写入流中的字符编码成字节

BufferedWrite bufw = new BufferedWrite(new OutputStreamWriter(System.out));

 

 

Propertise a = System.getPropertise();获取系统属性。

 

log4j  异常日志处理软件

 

 

流操作的基本规律:

 

1 明确源和目的。

  源:输入流 InputStream Reader

  目的 :输出流 OutputStream Writer

2 操作的数据是否纯文本

  是:字符流

  不是:字节流

 

3 当体系明确后,在明确要使用哪个具体对象。

  通过设备来区分。

   源设备:内存,硬盘,键盘

   目的设备:内存,硬盘,控制台。

 

记住,转化流什么时候用,字符与字节之间的桥梁,通常,涉及到字符编码转化时,

需要用到转化流

转载于:https://www.cnblogs.com/wzz1020/p/3861273.html

你可能感兴趣的文章
[YTU]_2443 ( C++习题 复数类--重载运算符3+)
查看>>
sdut_1189
查看>>
机器视觉:SSD Single Shot MultiBox Detector
查看>>
国内外免费电子书(数学、算法、图像、深度学习、机器学习)
查看>>
狄利克雷过程(Dirichlet Process)
查看>>
五子棋项目的实现(二)博弈树算法的描述
查看>>
Hibernate : Disabling contextual LOB creation as createClob() method threw error
查看>>
【bzoj4872】[Shoi2017]分手是祝愿 期望dp
查看>>
字符串元转分
查看>>
thinkphp 防sql注入
查看>>
201521123044 《Java程序设计》第1周学习总结
查看>>
MIT Scheme 的基本使用
查看>>
程序员的“机械同感”
查看>>
在16aspx.com上下了一个简单商品房销售系统源码,怎么修改它的默认登录名和密码...
查看>>
c++回调函数
查看>>
linux下Rtree的安装
查看>>
【Java】 剑指offer(53-2) 0到n-1中缺失的数字
查看>>
Delphi中ListView类的用法
查看>>
博客第一弹—聊聊HTML的那些事
查看>>
Python Web框架Django (零)
查看>>