美文网首页
Java之I/O流总结-持续更新

Java之I/O流总结-持续更新

作者: 篮球女神馨颖 | 来源:发表于2017-07-10 23:14 被阅读0次

    结构图

    定义

    能被连续读取数据的数据源和能被连续写入数据的接收端就是流

    字节流与字符流的区别

    字符流 --读到一个或多个字节(中文两个字节,UTF-8码表中3个字节),先查表,再返回字符.只能处理字符数据,纯文本有心考虑使用字符流

    字节流 --读到一个字节就返回一个字节,可以处理所有数据类型

    体系

    基本的功能就是读和写

    1.字符流小结:

    close() --资源的释放

    FileReader除了自己的构造函数外没有特有的方法:

    用于读取文本文件的流对象

    用于关联文本文件

    构造函数FileReader(String fileName) --在读取流对象初始化时,必须制定一个被读取的文件,如果文件不存在则会发生FileNotFoundException异常

    Writer中常见的方法:

    write() --将一个字符写入到流中

    write(char[]) --将一个字符数组写入到流中

    flush() --刷新流,将流中的数据刷新到目的地中,流还存在

    close() --关闭资源,关闭前会先调用flush()

    FileWriter除了自己的构造函数外没有特有的方法:

    用于处理文本文件

    没有默认的编码表

    有临时缓冲

    构造函数,在写入流对象初始化时必须要有一个存储数据的目的地

    构造函数FileWriter(StringfileName)

    在指定位置创建一个文件,如存在则覆盖

    FileWriter(String fileName,Boolean append) --当传入类型值为true时,会在指定文件末尾处进行数据的读写

    字符流的缓冲区:

    缓冲区的出现提高了对流的操作效率

    原理:其实就是讲数组进行封装

    BufferedWriter --特有方法newLine(),跨平台的换行符

    BufferedReader --特有方法readLine(),一次读一行,到行标记之前的字符数据作为字符串返回,读到末尾返回null

    缓冲的存在是为了增强流的功能而存在,简历缓冲必须先有流.并将流作为参数传递给缓冲区的构造函数

    readLine()方法原理:本质使用read()方法,每一次读到一个字符不进行具体操作,先进行临时存储,读到回车标记时,将临时容器中存储的数据一次性返回

    2.字节流小节: InputStream(读) OutputStream(写) 可以操作任何数据类型,字符流使用char[],而字节流使用的是byte[]. 3.转换流小结:

    特点:字节流和字符流之间的桥梁,该流对象可以对读取到的字节数据进行指定编码表的编码转换

    用处:当字节和字符之间有转换动作的时候,流操作的数据需要进行编码表的指定时

    对象:

    --InputStreamReader:字节到字符的桥梁

    --OutputStreamWriter:字符到字节的桥梁

    说明:

    --这两个对象是字符流体系中的成员,他们有转换的作用,而本身又是字符流,所以在new的时候需要传入字节流对象

    --转换流中的read方法已经融入编码表

    --操作文本文件的FileReader直接继承InputStreamReader就可以直接操作文本问价中的字符数据了

    --FileReader操作文本文档时,使用默认编码表,如果需要指定编码表,必须使用转换流

    构造函数:

    --InputStreamReader(InputStream) 默认的编码表GBK

    --InputStreamReader(InputStream,String charset) 可以通过charsetr参数指定编码

    --OutputStreamWriter(OutputStream) 默认的编码表GBK

    --OutputStreamWriter(OutputStream,String charset) 可以通过charsetr参数指定编码

    流操作的基本规律

    明确数据源(键盘System.in,硬盘,File开头的流对象,内存(数组))和数据目的(控制台System.out,硬盘,File开头的流对象,内存(数组))

    --其实是为了明确是输出流还是输入流

    明确操作数据是否是纯文本数据

    更多内容访问 java进阶_高老四

    相关文章

      网友评论

          本文标题: Java之I/O流总结-持续更新

          本文链接:https://www.haomeiwen.com/subject/etqixttx.html