課題のコーディングなのですが、このまま出力するとList型のままファイルに出力されてしまいます。
例えば、1~20を格納した場合、
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
と出力されます。
これを、
1
2
3
4
5
………
19
20
と出力したいのですが、どのように修正すればよいでしょうか、、、?
formatや"\n"を使って何とか試みたのですが、うまい具合にできませんでした。。。
import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.Scanner; public class memo { public static void main(String[] args) { // Scannerを作成 Scanner scan = new Scanner(System.in); // 格納用のListを初期化 ArrayList<String> input = new ArrayList<String>(); try { System.out.println("文字列を繰り返し入力してください"); for (int i = 0; i < 20; i++) { String line = scan.nextLine(); if (!(line.equals("end"))) {// "end"と入力されていない場合の処理 // 入力した文字列をlineに格納 input.add(line); } else {// 上記のif文に当てはまらない場合 System.out.println("入力を終了しました。ファイルに書き込みます。"); scan.close(); break; } } // 上書きモード PrintWriter pwbak = new PrintWriter( new BufferedWriter(new FileWriter("/Users/Owner/OneDrive/java.txt/numbers.bak/"))); pwbak.println(input); // 追記モード PrintWriter pwtxt = new PrintWriter( new BufferedWriter(new FileWriter("/Users/Owner/OneDrive/java.txt/numbers.txt/", true))); pwtxt.println(input); System.out.println(input); pwbak.close(); pwtxt.close(); } catch ( ArrayIndexOutOfBoundsException e) { System.out.println("入力例外が発生しました。ファイルに書き込みます。"); } catch (IOException ex) { ex.printStackTrace(); } } }
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/05 04:51