用java写文件

用java写文件,java,Java,如何修改此run方法,使其不仅在输出窗口中打印srting,还可以写入项目目录中的文件,例如outfile.txt。此外,每个字符串应位于文件中的单独一行 因此,我已经在项目目录中创建了一个名为outfile.txt的文件 A代码在窗口上打印良好,但不在文本文件中打印时 这是密码# 您不应该在java.io.File文件中使用相对路径。它们将与当前工作目录相关,而当前工作目录又取决于启动Java应用程序的方式。这本身可能不是您期望的项目目录。您应该始终在java.io.File中使用绝对路径。例

如何修改此run方法,使其不仅在输出窗口中打印srting,还可以写入项目目录中的文件,例如outfile.txt。此外,每个字符串应位于文件中的单独一行

因此,我已经在项目目录中创建了一个名为outfile.txt的文件

A代码在窗口上打印良好,但不在文本文件中打印时

这是密码#


您不应该在
java.io.File
文件中使用相对路径。它们将与当前工作目录相关,而当前工作目录又取决于启动Java应用程序的方式。这本身可能不是您期望的项目目录。您应该始终在
java.io.File
中使用绝对路径。例如,
c:/path/to/outfile.txt

要了解它当前实际写入的位置,请执行以下操作:

 File file = new File("outfile.txt");
 System.out.println(file.getAbsolutePath());
再次强调,不要使用相对路径。始终使用绝对路径。否则只需将其放在类路径中,然后使用
ClassLoader#getResource()
,然后使用
URL#toURI()
,然后使用
新文件(uri)


事实上,关闭溪流。它将隐式地将数据缓冲区刷新到资源。

您不应该在
java.io.File
文件中使用相对路径。它们将与当前工作目录相关,而当前工作目录又取决于启动Java应用程序的方式。这本身可能不是您期望的项目目录。您应该始终在
java.io.File
中使用绝对路径。例如,
c:/path/to/outfile.txt

要了解它当前实际写入的位置,请执行以下操作:

 File file = new File("outfile.txt");
 System.out.println(file.getAbsolutePath());
再次强调,不要使用相对路径。始终使用绝对路径。否则只需将其放在类路径中,然后使用
ClassLoader#getResource()
,然后使用
URL#toURI()
,然后使用
新文件(uri)


事实上,关闭溪流。它将隐式地将数据缓冲区刷新到资源中。

完成写入后,您需要关闭打开的文件:

pw.Close();

完成写操作后,需要关闭打开的文件:

pw.Close();

看看。

看看。

您每次都在创建一个新的printwriter。考虑在循环之前使它,如

PrintWriter pw = new...
while(cond) {
    ...
    pw.println(...);
    pw.flush(); // do this too, it does the actual writing
}
pw.close();

您每次都在创建一个新的printwriter。考虑在循环之前使它,如

PrintWriter pw = new...
while(cond) {
    ...
    pw.println(...);
    pw.flush(); // do this too, it does the actual writing
}
pw.close();

我们喜欢在这里看到答案,而不是链接;写出(结果);out.close();但似乎仍然不起作用,我也尝试了文件所在的完整路径。我们喜欢在这里看到答案,而不是链接。PrintWriter out=new PrintWriter(new FileWriter(“outfilename”);写出(结果);out.close();但似乎仍然不起作用,我也尝试了文件所在的完整路径。任何ideasPrintWriter out=新的PrintWriter(新的FileWriter(“outfilename”));写出(结果);out.close();但似乎仍然不起作用,我也尝试了文件所在的完整路径。有什么想法吗?你看到了什么?我想你只会看到最后一行,因为你每次通过循环都会覆盖文件。不,文本文件是空的,没有写入任何内容。你是否打开文件以再次写入?旧文件将被删除,并创建一个新的空文件。该文件所能做的就是在输入窗口中键入文本时将该文本复制到文本文件中。例如,我在输入框中输入。我讨厌屏幕上的java,看起来我讨厌java,但txt文件仍然是完全空的PrintWriter out=new PrintWriter(new FileWriter(“outfilename”);写出(结果);out.close();但似乎仍然不起作用,我也尝试了文件所在的完整路径。有什么想法吗?你看到了什么?我想你只会看到最后一行,因为你每次通过循环都会覆盖文件。不,文本文件是空的,没有写入任何内容。你是否打开文件以再次写入?旧文件将被删除,并创建一个新的空文件。该文件所能做的就是在输入窗口中键入文本时将该文本复制到文本文件中。例如,我在输入框中输入。我讨厌屏幕上的java,看起来我讨厌java,但txt文件仍然是完全空的PrintWriter out=new PrintWriter(new FileWriter(“outfilename”);写出(结果);out.close();但似乎仍然不起作用,我也尝试了文件所在的完整路径。任何ideasPrintWriter out=新的PrintWriter(新的FileWriter(“outfilename”));写出(结果);out.close();但似乎仍然不起作用,我也尝试了文件所在的完整路径。任何想法都没有运气。基本上问题在于:修改run方法,这样压缩的字符串不仅会打印在输出窗口中,还会写入项目目录中名为outfile.txt的文件中。每个压缩字符串应位于文件中的单独一行。当*输入时,代码应终止,但*不应写入文件这是我复制您的代码并进行更改时得到的结果-->代码对您不起作用吗?运气不好。基本上问题在于:修改run方法,这样压缩的字符串不仅会打印在输出窗口中,还会写入项目目录中名为outfile.txt的文件中。每个压缩字符串应位于文件中的单独一行。当*输入时,代码应终止,但*不应写入文件这是我复制您的代码并进行更改时得到的结果-->代码对您不起作用吗?