2012-05-01 9 views
1

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

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

} 

答えて

2

更新

変更

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

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

trueは正確に何をしている、ファイルに追加してFileWriterを教えてくれますあなたやってみたいです。

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

FileWriterには文字列を書くオプションがあります。

twain249と同様に、パスについて何かお伝えください。

+2

また、あなたは '' "output.txtと" を変更する必要がありますこれは、コードを実行するディレクトリ(通常は '/ bin')内の" output.txt "という名前のファイルを検索するためです。 – twain249

+0

あなたが存在しない場合、新しいファイルを作成するために彼が何をしなければならないか答えました – EnKrypt

+0

@EnKrypt FileOutputStreamはそれを自動的に行います。 – MarioDS

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(...); 
関連する問題