2013-09-25 26 views
0

应该我有这样的程序:我的程序覆盖被写入文件,但它不

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,其登记信息到一个脚本.txt文件称为fugler.txt。问题是,每次我注册一只新的鸟时,我都希望它在文件末尾放置得漂亮甜美。但事实并非如此。它会覆盖整个文件。为什么它会这样做呢,当我在文件打开结束时将其置于真实状态?

回答

1

删除以下行。

+0

非常感谢。你是我的上帝。花了好几个小时,终于回答了......非常感谢! – Makri

+0

欢迎.. :) – Hareesh

0
fil = new PrintWriter(new FileWriter("fugler.txt", true)); 

在你的程序

try{ 
    fil=new PrintWriter(new FileWriter("fugler.txt")); 
} catch (IOException e) { 
    System.out.println("Filen finnes ikke"); 
} 

由于它是创建执行一个新的文件,每次使得这款

fil = new PrintWriter(new FileWriter("fugler.txt", false)); 
+0

这没有奏效,要么:/ – Makri

相关问题