我正在学习Java的一些课程,讲师开始介绍IO如何在Java中工作。我只是有一个问题,Java程序员可以澄清一下。
下面的代码是一个程序,它在我编写代码的同一文件目录中创建(记事本)文本文件。之后,它只是将基本的文本行打印到该文件中。
(4 * 4) + (8 * 8) * (4 * 4) - 16/4
// Found brackets - highest precedence.
// more than one, so evaluate left to right
16 + (8 * 8) * (4 * 4) - 16/4
16 + 64 * (4 * 4) - 16/4
16 + 64 * 16 - 16/4
//brackets finished, back to precedence. Found multiplicative operators
//evaluate left to right
16 + 1024 - 16/4
16 + 1024 - 4
//multiplicative finished, back to precedence. Found additive operators
//evaluate left to right
1040 - 4
1036
// Expression fully evaluated. Can now be used / assigned to a variable
问题1:由于讲师只是简短的解释,这行代码对我来说有点混乱。我知道在这一行中,我们正在创建“outFile”对象。之后,我们调用PrintWriter构造函数,在其参数内部,我们调用FileWriter的构造函数。在它的构造函数中,我们调用我们创建的文件名作为String。那是令人困惑的部分。我不完全理解PrintWriter和FileWriter正在做什么。看起来FileWriter正在创建我们的文件,而PrintWriter正在为我们提供println()方法来将两个数字打印到文件中。经过研究,我发现你可以使用FileWriter和PrintWriter实现相同的目的。以这种方式教授文件处理的目的是什么,以及这两个类究竟在做什么?感谢您帮我澄清这一点!
答案 0 :(得分:1)
The code is equivalent to
FileWriter fw = new FileWriter(fileName);
PrintWriter outFile = new PrintWriter(fw);
So it first creates a FileWriter, which writes characters to a file, and then creates a PrintWriter which prints its values to the FileWriter.