在编程语言的教材中,文件流大多是放在最后一章介绍的,而且大学不怎么考流,所以没有重视过。在开始学习 java 流时,发现大多博客上来就放一大家子类图,每次看到都头大。
在数据库领域,不可避免会接触到文件和流,而且磁盘上的文件组织是一件很有意思的事。因此,通过对实际项目中的流使用方式进行研究,加上网上博客学习,发现流也可以快速入门。
本系列教程的目标是从最简单的入手,一步步入门 java 字节流。
我们从文件流入手,先介绍两类文件流,都是字节流:
顺序文件字节流:FileOutputstream、FileInputStream
随机文件字节流:RandomAccessFile。
至于为什么只介绍字节流,因为字节流高效,在文件格式领域应用最广。字节就是byte。
顺序文件字节流
重点:顺序,他们只能顺序写和顺序读。
FileOutputstream :用来写文件的,可以选择追加或覆盖,追加表示从文件末尾继续写,覆盖则将原有文件删掉重新写一个新的文件。
FileInputStream:用来读文件的,只能从前往后读,单向的,过了就没法回头,想再读前边的只能再开一个了。
先放三个工具:
主要测试流程:
输出:
随机文件字节流
重点:随机,有一个独特的seek方法,可以跳到距离文件头任意的位置,想读哪里读哪里,读完还可以从头来过继续读。
RandomAccessFile :既可以随机读,也可以随机写,在初始化时候设置模式:rw等。由于很好的灵活性,大部分大数据的文件格式的读取都用的这种方式。
先放工具:
主要测试过程:
输出:
这两中文件流很直观,区别也很明显,一个顺序读写,一个随机读写。