Java教程

【架构师面试-Java编程基本功-6】-基于源码实现IO基本操作

本文主要是介绍【架构师面试-Java编程基本功-6】-基于源码实现IO基本操作,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

这里的基本操作就是普通的读取操作,如果想要跟深入的了解不同的 IO开发场景必须先了解 IO 的基本操作。

1:按字符流读取文件

1:按字符流的·节点流方式读取

如果我们要取的数据基本单位是字符,那么用(字符流)这种方法读取文件就比较

适合。比如:读取 test.txt 文件

注释:

字符流:以字符为单位,每次次读入或读出是 16 位数据。其只能读取字符类型数据。 (Java 代码接收数据为一般为 char 数组,也可以是别的)

字节流:以字节为单位,每次次读入或读出是 8 位数据。可以读任何类型数据,图片、文件、音乐视频等。 (Java 代码接收数据只能为 byte 数组)

FileReader 类:(字符输入流) 注意:new FileReader("D:\test.txt");//文件必须存在

2:按字符流的·处理流方式读取

效果是一样,但是给了我们有不同的选择操作。进行了一个小封装,加缓冲功能, 避免频繁读写硬盘。我这只是简单演示,处理流其实还有很多操作

BufferedReader 类: 字符输入流使用的类,加缓冲功能,避免频繁读写硬盘

 

2:按字符流写出文件

1:按字符流的·节点流方式写出

写出字符,使用(字符流)这种方法写出文件比较适合。比如:输出内容添加到 test.txt 文件

FileWriter 类:(字符输出流),如果写出文件不存在会自动创建一个相对应的文件。使用 FileWriter 写出文件默认是覆盖原文件,如果要想在源文件添加内容不覆盖的话,需要构造参数添加 true 参数:看示例了

 

2:解按字符流的·处理流方式写出

BufferedWriter : 增加缓冲功能,避免频繁读写硬盘。 我这里: //new FileWriter(file),这里我只给了他文件位置,我没加 true 代表覆盖源文件

 

3:按字节流写入写出文件

1:按字节流的·节点流写入写出文件

如果我们要取的数据 图片、文件、音乐视频等类型,就必须使用字节流进行读取写出

注释:

字符流:以字符为单位,每次次读入或读出是 16 位数据。其只能读取字符类型数据。 (Java 代码接收数据为一般为 char 数组,也可以是别的)

字节流:以字节为单位,每次次读入或读出是 8 位数据。可以读任何类型数据,图片、文件、音乐视频等。 (Java 代码接收数据只能为 byte 数组)

FileInputStream:(字节输入流)

FileOutputStream:(字节输出流)

 

2:按字节流的·处理流写入写出文件

FileInputStream:(字节输入流)

FileOutputStream:(字节输出流)

BufferedInputStream:(带缓冲区字节输入流)

BufferedOutputStream:(带缓冲区字节输入流) 带缓冲区的处理流,缓冲区的作用的主要目的是:避免每次和硬盘打交道,提高数据访问的效率。

 

这篇关于【架构师面试-Java编程基本功-6】-基于源码实现IO基本操作的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!