覆盖 Java 中的现有文件

Overwrite existing file in Java

我有以下代码可以编写一个文本文件并保存用户输入的数字。

for (contador = 0; contador < numeros; contador++){
                array[contador]= Integer.parseInt (JOptionPane.showInputDialog("Ingresa " + numeros + " números")); try{
                    File archivo = new File ("lista de numeros.txt");
                    FileWriter fr = new FileWriter (archivo,true);
                    fr.write(Integer.toString(array[contador]));
                    fr.write("\r\n");
                    fr.close();
                }catch(Exception e){
                    System.out.println("Error al escribir");
                }

我想做的是在创建文件后覆盖文件而不是追加,但是,如果我更改为 false,它不起作用,因为只保存用户输入的最后一个数字。 还有另一种覆盖文件的方法吗?还是我遗漏了什么?

请在写入前删除该文件。下面是如何在 Java:

中删除文件的示例代码
try {
    Files.delete(path);
} catch (NoSuchFileException x) {
    System.err.format("%s: no such" + " file or directory%n", path);
} catch (DirectoryNotEmptyException x) {
    System.err.format("%s not empty%n", path);
} catch (IOException x) {
    // File permission problems are caught here.
    System.err.println(x);
}

问题是fr.close();在 for

里面
File archivo = new File ("lista de numeros.txt");
    FileWriter fr = new FileWriter (archivo,true);

    for (contador = 0; contador < numeros; contador++){
        array[contador]= Integer.parseInt (JOptionPane.showInputDialog("Ingresa " + numeros + " números")); try{        
            fr.write(Integer.toString(array[contador]));
            fr.write("\r\n");
        }catch(Exception e){
            System.out.println("Error al escribir");
        }

    }
    fr.close();  

处理后必须关闭文件

您可能需要类似于以下代码的内容。 File/FileWriter 在 try 外声明,在 try 内初始化并在 finally.

内关闭
File archivo = null;
FileWriter fr = null;
try {
    archivo = new File("lista de numeros.txt");
    fr = new FileWriter(archivo, true);
    for (contador = 0; contador < numeros; contador++) {
        array[contador] = Integer.parseInt(JOptionPane.showInputDialog("Ingresa " + numeros + " números"));
        fr.write(Integer.toString(array[contador]));
        fr.write("\r\n");
    } 
} catch (Exception e) {
  System.out.println("Error al escribir");
} finally {
  fr.close();
}