在学习JavaIO的时候最让我头疼的就是众多的类,以及类之间的关系难以理清。
看了下边的关系图,思路很清晰,很容易理解并记住各类的关系。
字节流本身不会使用缓冲区,字符流需要使用缓冲区。所以在使用字符流的时候记得要使用flush()方法才能将内容写出去。
什么是缓冲区和缓冲区的作用:某些情况下,如果一个程序频繁地操作一个资源(如文件或数据库),则性能会很低,此时为了提升性能,就可以将一部分数据暂时读入到内存的一块区域之中,以后直接从此区域中读取数据即可,因为读取内存速度会比较快,这样可以提升程序的性能。
字符流:
Reader、Writer
字节流:
InputStream、OutputStream
常用的实现类都是和File相关的,包括
FileReader、FileWriter 、FileInputStream、FileoutputStream
通常为了提高IO效率,要使用缓存来操作流。
BufferReader、BufferWriter、BufferedInputStream、BufferedOutputStream