当我们要用Java写文件时通常有两个方法:使用FileOutputStream或者FileWriter。
使用FileOutputStream:
1 2 3 4 | File fout = new File(file_location_string); FileOutputStream fos = new FileOutputStream(fout); BufferedWriter out = new BufferedWriter(new OutputStreamWriter(fos)); out.write("something"); |
使用FileWriter:
1 2 3 | FileWriter fstream = new FileWriter(file_location_string); BufferedWriter out = new BufferedWriter(fstream); out.write("something"); |
两种方法都可以写文件,但是使用FileOutputStream和FileWriter有什么分别呢?
对比这两个类有很多讨论,它们都实现了普通操作系统的i/o概念。我们不需要关心它们是怎么设计的,我们仅仅需要知道选择使用哪个,以及为什么使用它。
Java API中的解释:
FileOutputStream是用来输出原始字节流的,如图像数据。要输出字符流,则使用FileWriter。
如果你对于设计模式也熟悉的话,FileWriter是典型的装饰者模式。我已经写过教程来解释装饰者模式了,因为它对于很多设计来说都很重要。
FileOutputStream的一个应用就是将文件转换成字节数组。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |