用Java覆盖现有文件

时间:2016-06-03 20:27:34

标签: java filewriter

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

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,它不起作用,因为只保存用户输入的最后一个数字。 还有另一种方法可以覆盖文件吗?或者有什么我想念的东西?

3 个答案:

答案 0 :(得分:1)

你会想要下面代码的内容。 try之外的文件/ FileWriter声明,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();
}

答案 1 :(得分:0)

请在写入之前删除该文件。下面是一个用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);
}

答案 2 :(得分:0)

问题是fr.close();在

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();  

该过程

后必须关闭该文件