2013-09-25 1 views
0

je ce programme:Mon programme écrase le fichier, il est écrit dans, mais il ne doit pas

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"); 
    } 
    } 
} 

Et quand je le lance, puis par cas 1 qui est un script pour l'enregistrement des informations dans un Fichier .txt appelé fugler.txt. Le problème est que chaque fois que j'enregistre un nouvel oiseau dans celui-ci, je veux qu'il soit placé bien et doucement à la fin du fichier. Mais ce n'est pas le cas. il écrase le fichier entier. Et pourquoi fait-il cela, quand j'ai placé vrai à la fin de l'ouverture du fichier?

Répondre

1

Supprimer Les lignes suivantes dans votre programme

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

Comme il est crée un nouveau fichier à chaque fois qu'il exécute.

+0

Merci beaucoup. Tu es mon Dieu. Tant d'heures passées, et enfin une réponse ... Merci beaucoup! – Makri

+0

votre bienvenue .. :) – Hareesh

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

faire ce que

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

Cela n'a pas fonctionné, soit:/ – Makri

Questions connexes