2013-09-25 63 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

相關問題