码迷,mamicode.com
首页 > 编程语言 > 详细

Java IO

时间:2018-09-18 00:32:48      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:字符串   读写   关闭   system   字符类型   成员   nbsp   处理   文本   

IO流的类层次图

 技术分享图片

System.in 是代表InputStream 输入流(字节流),从键盘输入。 

System 类

in 类成员

 [1]字符流和字节流的转换

InputStreamReader  字节流转成字符流,  

InputStreamReader(InputStream in)将字节流以字符流输入
OutputStreamWriter 字符到字节的桥梁 , 
OutputStreamWriter(OutStream  out)将字节流以字符流输出

[2]字符流和字节流的区别

a.字节流没有缓冲区,是直接输出的,不调用close()方法时,就已经输出信息,字符流有缓冲区,且是要输出到缓冲区的。只有在调用close()方法关闭缓冲区时,信息才会输出。要想在未关闭时输出信息,需要手动调用flush()方法。

b.读写单位不同:字节流以8bit ,也就是字节为单位。字符流是以16bit,一个字符为单位。

c.处理对象不同:字节流能处理所有类型的数据,如图片,视频等,而字符流只能处理字符类型的数据,也就是纯文本数据。

 

so

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

解释:System.in :标准输入,从键盘输入的字节流,通过InputStreamReader转换成字符流 放入缓冲区。

 

      java.io.BufferedReader和java.io.BufferedWriter类各拥有8192字符的缓冲区。当BufferedReader在读取文本文件时,会先尽量从文件中读入字符数据并置入缓冲区,而之后若使用read()方法,会先从缓冲区中进行读取。如果缓冲区数据不足,才会再从文件中读取,使用BufferedWriter时,写入的数据并不会先输出到目的地,而是先存储至缓冲区中。如果缓冲区中的数据满了,才会一次对目的地进行写出。

 

      从标准输入流中直接读取使用者输入时,使用者每从键盘输入一个字符,System.in就读取一个字符,为了能一次读取一行使用者的输入,使用了BufferedReader来对使用者输入的字符进行缓冲,readLine()方法会在读取到使用者的换行字符时,自一次将整行字符串传入。

 

Java IO

标签:字符串   读写   关闭   system   字符类型   成员   nbsp   处理   文本   

原文地址:https://www.cnblogs.com/xiaoyingbianbianbian/p/9665367.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!