获取 PrintWriter 写入的文件

Get file that PrintWriter writes to

如何获取 PrintWriter 对象正在写入的文件的名称?

PrintWriter myPrintWriter = new PrintWriter(fileName, "UTF-8");

我需要 fileName 参数。

你不能 - 它甚至可能不会写入文件,例如

StringWriter stringWriter = new StringWriter();
PrinterWriter printWriter = new PrintWriter(stringWriter);

如果您需要此信息,您可能会创建 PrintWriter 的子类,它会记住(并公开)它正在写入的文件...但通常需要这样做表明您是最好的看看你的设计并重新考虑它。 (我个人倾向于避免 PrintWriter,因为我不喜欢被吞没的异常,但这是另一回事。)

如果你写入文件,你可以使用这个代码:

File f = new File("some_file.txt");
f.createNewFile();
PrintWriter writer = new PrintWriter(new FileWriter(f));

或者您可以使用文件名:

PrintWriter myPrintWriter = new PrintWriter("some_file.txt", "UTF-8");

如果文件存在,那么它将被截断为零大小;否则,将创建一个新文件。