Java文件读写

Posted on 2022-03-23 15:46  Capterlliar  阅读(429)  评论(0编辑  收藏  举报

以下所有学习基于本图:

Java文件读写分两类,字节流和字符流。

两者最大区别为缓冲区。

字节流:不用缓冲区,直接操作文本。InputStream/OutputStream

字符流:字符在缓冲区形成,然后操作文本。 Reader/Writer

综合对比详解:Java的字节流,字符流和缓冲流对比探究

接下来拣两个见过的比较一下。

1.字符流

BufferedReader/Writer

有8192字节缓冲区,读入先放缓冲区,不够从源文件读;写的时候先放缓冲区,溢出了再一股脑往文件里写。

适合一行一行读。

InputStreamReader/OutputStreamWriter

将字节流转化为字符流,可以指定编码格式,默认GBK。

由于文件都是以字节形式存储的,所以经常BufferedReader套InputStreamReader,再套字节流输入输出(怎么又是套娃

 

2.字节流

 FileInputStream/OutputStream

读写文件的字节流。调用输入文件名,可以抛没读到的异常。常用API:read方法,可以读一个字节。Input详解 Output详解  

*FileReader=InputstreamReader+FileInputStream

FilterInputStream/OutputStream

BufferedInputStream/OutputStream

带缓冲区的字节流,效率通常高一点。

DataInputStream/OutputStream

用来读写各种各样的数据类型,比如int、double、UTF等等。

ObjectInputStream/OutputStream

和序列化有关,用来读取对象。

先这样,后面具体用了再补充。