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

そして、それを実行してから、fugler.txt という .txt ファイルに情報を登録するためのスクリプトであるケース 1 を実行します。問題は、新しい鳥をこれに登録するたびに、ファイルの最後にうまく配置したいということです。しかし、そうではありません。ファイル全体を上書きします。そして、ファイルを開く最後に true を配置したのに、なぜそうするのですか?

4

3 に答える 3

1

プログラムで次の行を削除します

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

そのままでは、実行するたびに新しいファイルが作成されます。

于 2013-09-25T11:56:46.087 に答える
0

このコンストラクターを追加パラメーターと共に使用します

于 2013-09-25T10:36:27.683 に答える
0
fil = new PrintWriter(new FileWriter("fugler.txt", true));

これを次のようにします

fil = new PrintWriter(new FileWriter("fugler.txt", false));
于 2013-09-25T11:19:14.490 に答える