我有以下代码编写文本文件并保存用户输入的数字。
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,它不起作用,因为只保存用户输入的最后一个数字。 还有另一种方法可以覆盖文件吗?或者有什么我想念的东西?
答案 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();
该过程
后必须关闭该文件