前提・実現したいこと
以下のように表示させたいです。
名前,ID
田中,101
佐藤,102
発生している問題・エラーメッセージ
以下のように表示されます。 名前,ID 田中,101 名前,ID 佐藤,102
該当のソースコード
java
1import java.io.*; 2import java.io.BufferedReader; 3import java.io.InputStreamReader; 4import java.util.Scanner; 5import java.nio.file.Files; 6import java.io.File; 7import java.io.FileReader; 8import java.io.PrintWriter; 9import java.io.OutputStreamWriter; 10import java.io.FileNotFoundException; 11import java.nio.file.Path; 12import java.nio.file.Paths; 13import java.nio.charset.Charset; 14 15class Sample { 16 public static void main(String[] args)throws IOException{ 17 myLabel:while(true){ 18 System.out.println("<<メニュー>>"); 19 System.out.println("1.情報入力 \n2.データ表示 \n3.終了"); 20 Scanner scanner = new Scanner(System.in); 21 System.out.print("番号を入力して下さい>"); 22 int menunumber = scanner.nextInt(); 23 System.out.println(""); 24 25 switch(menunumber) { 26 case 1: 27 System.out.println("<情報入力>"); 28 System.out.println(""); 29 try { 30 31 32 File file = new File("Sample1.txt"); 33 PrintWriter filedata = new PrintWriter(new BufferedWriter 34 (new OutputStreamWriter(new FileOutputStream(file,true),"UTF-8"))); 35 BufferedReader data = new BufferedReader(new InputStreamReader(System.in)); 36 37 String[] koumoku = {"名前" ,"ID" }; 38 String name,id; 39 40 for(int i = 0; i < koumoku.length; i++){ 41 filedata.print(koumoku[i]); 42 if(i != koumoku.length -1){ 43 filedata.print(","); 44 } 45 } 46 filedata.println(""); 47 48 System.out.print("名前入力>"); 49 name = data.readLine(); 50 System.out.print("ID入力>"); 51 id = data.readLine(); 52 53 filedata.println(name + "," + id); 54 filedata.close(); 55 56 } catch (FileNotFoundException e) { 57 e.printStackTrace(); 58 59 } catch (IOException e) { 60 e.printStackTrace(); 61 } 62 break; 63 64 case 2: 65 System.out.println("<データ表示>"); 66 System.out.println(""); 67 Path file1 = Paths.get("Sample1.txt"); 68 try (BufferedReader data = Files.newBufferedReader(file1, Charset.forName("UTF-8"))) { 69 70 String text; 71 while ((text = data.readLine()) != null) { 72 System.out.println(text); 73 } 74 data.close(); 75 } catch (FileNotFoundException e) { 76 e.printStackTrace(); 77 } catch (IOException e) { 78 e.printStackTrace(); 79 } 80 break; 81 case 3: 82 System.out.println("<終了>"); 83 break myLabel; 84 85 86 } 87 } 88 } 89}
試したこと
while(true)よりも前段階で
String[] koumoku = {"名前" ,"ID" };
を表示させようとすると、、ファイルを読み込む前のため、エラーが出てしまいます。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー