覆盖 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();
}
我有以下代码可以编写一个文本文件并保存用户输入的数字。
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();
}