1

コンソールに入力された情報を .txt ファイルに書き込む Java プログラムを作成する必要があります。.txt ファイルが既に存在する場合は、それを開いて別の行に追加情報を書き込む必要があります。新しい「Lifter」の .txt ファイルが存在しない場合は、.txt を作成して書き込みます。基本的に、入力した名前ごとに新しい .txt を作成する方法と、それを編集する方法がわかりません。人物の .txt は既に存在します。どうすればそれを行うことができますか?

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Random;
import java.util.Scanner;

public class MeetPrinter {

    public static void getInfo() {

        Scanner scanner = new Scanner(System.in);
        int question;
        String firstName;
        String lastName;
        int squat;
        int bench;
        int lift;
        String meetName;
        do {

            System.out.println("Enter first name: ");
            firstName = scanner.next();

            System.out.println("Enter Last Name: ");
            lastName = scanner.next();

            System.out.println("Enter new Meet Name: ");
            meetName = scanner.next();

            System.out.println("Enter max squat weight in kg: ");
            squat = scanner.nextInt();

            System.out.println("Enter max bench press in kg: ");
            bench = scanner.nextInt();

            System.out.println("Enter max deadlift in kg: ");
            lift = scanner.nextInt();

            System.out
                    .println("Enter '1' to enter more lifters or '2' if you are done entering.");
            question = scanner.nextInt();
        } while (question == 1);

        try{
            PrintWriter out = new PrintWriter("output.txt");
            Random randomGenerator = new Random();
            int randomInt = randomGenerator.nextInt(100000);
            out.println(lastName + ", " + firstName + " Record #: " + randomInt);
            out.println("");
            String meet = "Meet Name";
            String sq = "SQ Max";
            String bp = "BP Max";
            String sub = "SUB Total";
            String dl = "DL Max";
            String tot = "Total";
            out.printf("%20s %15s %18s %19s %18s %18s",meet ,sq,bp,sub,dl,tot);
            out.println("");
            out.printf("%20s", meetName);
            out.printf("%10d (%6.2f)", squat, squat * 2.2);
            out.printf("%10d (%6.2f)", bench, bench * 2.2);
            float subPounds = (float) ((float)(squat + bench) * 2.2);
            out.printf("%10d (%6.2f)", squat + bench, subPounds);
            out.printf("%10d (%6.2f)", lift, lift * 2.2);
            float tPounds = (float) ((float)(squat + bench + lift) * 2.2);
            out.printf("%10d (%6.2f)", squat + bench + lift, tPounds);
            out.close();
        }catch(IOException e){
            e.printStackTrace();
        }
    }

}
4

2 に答える 2

2

アップデート

変化する

PrintWriter out = new PrintWriter("output.txt");

FileWriter out = new FileWriter("output.txt", true);

true、ファイルが存在する場合はファイルに追加するように FileWriter に指示します。これはまさにあなたがやりたいことです。

ここにFileWriterの javadoc があります。

FileWriter には、文字列を書き込むオプションがあります。これは、ユーザーが行うことです。

また、twain249が提案したように、パスについて何かをしてください...

于 2012-05-01T17:34:50.670 に答える
1

Javaファイル操作

File file  = new File("<file name>");
BufferedWriter writer = null;

if(file.exists()){ //Check existence check 
writer = new BufferedWriter(new FileWriter(toFile,true)); 
//bytes will be written to the end of the file rather than the beginning
}else{
file.createNewFile() //creating new file
writer = new BufferedWriter(new FileWriter(toFile)); 
}
BufferedWriter writer = new BufferedWriter(writer);
writer.write(...);
---or----
PrintWriter out
   = new PrintWriter(new BufferedWriter(writer));
out.println(...);
于 2012-05-01T18:07:33.917 に答える