我有这个程序:
import java.util.*;
import java.io.*;
public class Oblig2 {
public static void main (String[] args) {
final Scanner input = new Scanner (System.in);
int menyvalg=0;
Meny menyen = new Meny();
menyen.meny();
}
}
//Selve menyen til programmet i en egen klasse.
class Meny {
PrintWriter fil;
Scanner input = new Scanner (System.in);
public void meny() {
try{
fil=new PrintWriter(new FileWriter("fugler.txt"));
} catch (IOException e) {
System.out.println("Filen finnes ikke");
}
int menyvalg=0;
int menykall=1;
//Menyen vil her bli repetert helt til en taster inn 4 og endrer menykall til 0.
do{
//Selve menyen vil bli repetert helt til brukeren velger en av menyens alternativer.
do{
System.out.println("====== Meny for registrering av fugleobservasjoner =====");
System.out.println("\n1. Registrer en fugleobservasjon");
System.out.println("2. Skriv ut alle fugleobservasjoner av en type");
System.out.println("3. Skriv ut alle fugleobservasjoner på ett bestemt sted");
System.out.println("4. Avslutt systemet");
System.out.println("\nVennligst velg en aksjon: ");
menyvalg = input.nextInt();
} while(menyvalg < 1 || menyvalg > 4);
switch (menyvalg){
case 1: registrering();
break;
case 2:
case 3:
case 4:menykall=0;
}
}while(menykall>=1);
}
void registrering () {
System.out.println("Velkommen til registreringen av fugleobservasjoner.");
System.out.println("Begynner registreringen (Lagrer seg i filen fugler.txt): ");
try {
fil = new PrintWriter(new FileWriter("fugler.txt", true));
System.out.println("\nVennligst tast inn fugletypen: ");
String fugletype = input.next();
fil.write(fugletype + ",");
System.out.println("Tast inn fuglens kjonn (M/H/X): ");
char fuglekjonn = input.next().charAt(0);
fil.write(fuglekjonn + ",");
System.out.println("Tast inn observasjonslokasjon: ");
String lokasjon = input.next();
fil.write(lokasjon + ",");
System.out.println("Tast inn dato for observasjon (Som en string på formen mai2012): ");
String dato = input.next();
fil.write(dato);
fil.close();
}catch(Exception e){
System.out.println("Åpning av fil feilet");
}
}
}
当我运行它,然后通过案例1,这是一个脚本,用于将信息注册到名为fugler.txt的.txt文件中。问题在于,每当我注册一只新鸟时,我希望它在文件的末尾放置得很漂亮。但事实并非如此。它会覆盖整个文件。当我在文件打开结束时将其设置为true时,为什么会这样做呢?
答案 0 :(得分:1)
删除程序中的以下行
try{
fil=new PrintWriter(new FileWriter("fugler.txt"));
} catch (IOException e) {
System.out.println("Filen finnes ikke");
}
因为每次执行都会创建一个新文件。
答案 1 :(得分:0)
使用此构造函数with append parameter
答案 2 :(得分:0)
fil = new PrintWriter(new FileWriter("fugler.txt", true));
将其设为
fil = new PrintWriter(new FileWriter("fugler.txt", false));