PrintWriter和FileWriter而不是使用文件或使用文件(JAVA)程序

时间:2020-06-17 00:39:00

标签: java filewriter printwriter

为了简单起见,也让你们感到无聊,我只想问一个问题,你们是否可以使用更简单的方法给我另一个例子。

这是代码

PrinterWriter w = new PrinterWriter(new FileWriter("test.txt"));

好的,上面的方法工作得很好,但是

FileWriter fw = new FileWriter("test.txt");

这项工作也可以

PrintWriter w = PrintWriter(new File("test.text");

好了,现在所有这些工作都可以了,但是我更关心的是为什么斜体字能起作用。

我已经阅读了一些文档,并注意到它以Writer作为构造函数参数,而FileWriter是其扩展名。

但是,如果那是真的,那为什么它不起作用(或者也许行得通)

FileWriter fw = FileWriter(new PrintWriter("test.txt)); 

我尚未确认这是否行得通,但我仍然看不到它会做什么(其他意义),但有人能解释一下哪怕是一点点信息吗?

1 个答案:

答案 0 :(得分:1)

Java使用Decorator模式来提供Writer / Stream的专门组合

  • Writer一个可以向其写入字符的对象
  • PrintWriter专业的Writer,提供格式选项,例如换行符(例如println())或`printf` aso
  • OutputStream一个向其写入字节的对象

所以:

FileWriter("test.txt")是一个您可以向其中写入字符并写入文件的对象。

PrintWriter(new FilteWriter("test.txt"))是提供格式选项的对象, 将字符写入到写入文件的对象中。

PrintWriter(new File("test.txt"))在语义上是相同的,它是具有格式设置选项的作家,可以将字符写入文件。 (无需额外的步骤)

FileWriter fw = FileWriter(new PrintWriter("test.txt));无法编译。

另外两个常见的作家是BufferedWriter StringWriterBufferedWriter o会优化较大的写入块,仅在缓冲区已满或刷新时才写入基础WriterStringWriter是附加到字符串的基本“内存中”实现。

具有这样的功能:BufferedWriter( new PrintWriter( new FileWriter("test.txt")));"是基于块的编写器,没有格式设置选项,它使用PrintWriterFileWriter将字符写入文件。

相关问题