标签:文本 写文件 常见 style 效率 xstream write lin image
Java主要提供了以下几个读写文件操作:
1、InputStream,OutputStream(字节流)
注意到,后面实例化是用的FileXXXStream,这是因为java里面不能够用InputStream,OutputStream进行实例化,查手册得知:
InputStream有这些子类:
而OutputStream与之类似,有这些直接子类:
而FileInputStream的构造方法有如下这些:
可以看出,里面的参数要么为一个文件路径,要么为一个File对象。
而FileOutputStream则与之类似,构造方法如下:
虽然参数有所不同,但大体上还是可以总结为:要么为文件路径,要么为File对象。
FileInputStream的读方法主要有3种,如下所示:
而FileOutputStream的常见方法,如下:
2、BufferedInputStream、BufferedOutputStream(缓存字节流)使用方式和字节流差不多,但是效率更高(推荐使用)
对于BufferedInputStream来说,
其read()方法的用法基本与InputStream的read()一致,只是效率更高
对于BufferedOutputStream来说,
牵涉到缓冲区的,注意最后要flush,close,不然最后一点数据就会留在缓冲区中,不会写入到想要的文件中。
3、InputStreamReader、OutputStreamWriter(字节流转字符流,这种方式不建议使用,不能直接字节长度读写)。使用范围用做字符转换
对于InputStreamReader来说,
InputStreamReader是从字节流到字符流的桥:它读取字节,并使用指定的charset将其解码为字符 。
而对于OutputStreamWriter来说,
OutputStreamWriter是字符的桥梁流以字节流:向其写入的字符编码成使用指定的字节charset 。
4、BufferedReader、BufferedWriter(缓存字符流,提供readLine方法读取一行文本)
对于BufferedReader来说,
从字符输入流读取文本,缓冲字符,以提供字符,数组和行的高效读取。
对于BufferedWriter来说,
将文本写入字符输出流,缓冲字符,以提供单个字符,数组和字符串的高效写入。
5、Reader、PrintWriter(PrintWriter这个很好用,在写数据的同时可以格式化)
对于Reader来说,
对于writer来说,
总结:InputStream,OutputStream之类的都是字节流,而Reader,Writer之类的都是字符流,而两者都有的,则是他们的桥梁角色,负责转换,平时单独用得少。
标签:文本 写文件 常见 style 效率 xstream write lin image
原文地址:https://www.cnblogs.com/sxytalent/p/10345726.html