Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java PrintWriter没有';t关闭后追加到现有的.txt文件_Java_File_Text_Append_Printwriter - Fatal编程技术网

Java PrintWriter没有';t关闭后追加到现有的.txt文件

Java PrintWriter没有';t关闭后追加到现有的.txt文件,java,file,text,append,printwriter,Java,File,Text,Append,Printwriter,我在尝试附加到现有文本文件时遇到了一些问题 它似乎没有附加一行文本。到目前为止,我已经有了这个方法: public static void addLine(File f, String line) { try { FileWriter fw = new FileWriter(f.getName(), true); BufferedWriter buffer = new BufferedWriter(fw); PrintWriter pw =

我在尝试附加到现有文本文件时遇到了一些问题

它似乎没有附加一行文本。到目前为止,我已经有了这个方法:

public static void addLine(File f, String line) {
    try {
        FileWriter fw = new FileWriter(f.getName(), true);
        BufferedWriter buffer = new BufferedWriter(fw);
        PrintWriter pw = new PrintWriter(buffer);
        pw.println(line);
        pw.close();

    } catch (IOException e) {
        System.err.println("IOException: " + e.getMessage());

    }
}
我主要有以下几点:

public static void main(String[] args) {
    File f = new File("adresOfFile");
    if (f.exists() && !f.isDirectory()) {
        System.out.println("File " + f.getName() + " exists!");
        System.out.println("\n" + "Path: " + f.getAbsolutePath());
        System.out.println("\n" + "Parent: " + f.getParent());
        System.out.println("\n" + "--------------CONTENT OF FILE-------------");
        addLine(f, "");
        addLine(f, "The line to append");
        try {
            displayContent(f);
        } catch (IOException e) {
            System.out.println(e.getMessage());
        }
    } else {
        System.out.println("File not found");
    }
}
当我运行程序时,它似乎没有给出任何错误。运行程序应该打印出现有的文本(displayContent),这是在附加(addLine)之后完成的。但是当我运行它时,它只显示现有的文本,没有附加的行

它也不会显示在文本文件中。我试图建立一个系统。out.println();在方法中,它会打印,所以我知道它会正确地运行方法,只是没有附加


编辑AWNSER:将f.getName()替换为f,并在pw.close()之前添加了pw.flush。

我认为您的displayContent(文件)函数有缺陷

上面的代码不会附加到文件中。 查看该文件以查看是否追加了任何内容

另外,每次追加一行时是否需要创建PrintWriter对象?
如果要追加许多连续行,请尝试通过创建静态/最终对象来使用单个PrintWriter/BufferedWriter对象。

查看文件时,没有任何更改,也没有添加任何行。没有连续的行,我只需要添加一个空行和一个测试行。你得到了什么输出?是否确实正在正确写入文件的名称/路径?代码对我有用。下面是此代码附加到与moja.java文件位于同一位置的文件“a”的示例。在pw.close()工作之前,使用构造函数而不是FileWriter(字符串,布尔值)并执行pw.flush()!我用f替换了f.getName(),并在pw.close()之前添加了pw.flush()。非常感谢!