这篇博客总结了能够用来将数据写入一个文件的一些类。
1. FileOutputStream
1 | public static void writeFile1() throws IOException { |
这个例子使用了FileOutputStream
类,相反你可以使用对文本文件操作更加友好的FileWriter
类和PrintWriter
类。
2. FileWriter
1 | public static void writeFile2() throws IOException { |
3. PrintWriter
1 | public static void writeFile3() throws IOException { |
4. OutputStreamWriter
1 | public static void writeFile4() throws IOException { |
5. 它们的不同
Java文档中说:
FileWriter
类是一个很适合写入字符文件的类。这个类的构造函数已经默认了文件的编码方式和字节缓冲数组的大小是可以接受的。如果想要手动指定这些值,你可以使用FileOutputStream
来构造一个OutputStreamWriter
类的对象。
PrintWriter
类会将类按照既定的格式输出到文本文件当中。这个类实现了所有在PrintStream
接口中的打印方法。它不包含写入原生字节的方法,因为一个程序需要使用未编码的字节流。
主要的区别就是PrintWriter
类提供了一些额外的方法用来处理格式,比如println
和printf
。另外,FileWriter
会在I/O失败时抛出IOException
的异常。PrintWriter
的方法不会抛IOException
的异常,相反它会使用一个布尔型的信标(flag),而这个信标可以使用checkError()
方法来标识错误。在每写入一字节的数据后PrintWriter
都会自动地调用flush
(清空)方法。在使用FileWriter
类的时候,调用者需要小心调用flush
方法。
译者记
在Guava中其实还有更多类似于这样的方法,极大地提升了我们的编程效率!欢迎访问本站的Guava教程。
译文原文地址:
http://www.programcreek.com/2011/03/java-write-to-a-file-code-example/