以下のjavaのコードではコンソールに入力した半角英数字(10個入力すると改行しEnterを入力した場合は処理を終わらせる)をcsvファイルに出力するという作業を途中までやっているのですが、ArrayListに格納した半角英数字をBufferedWriterのwriteメソッドで出力させる(10個ずつ改行)際にWhileとforを組み合わせて行っているのですがWhileの()内の終了条件をどのように書けばよいのかわかりません。ここを教えていただきたいです。
public class CsvFileWrite {
public static void main(String[] args) { try { ArrayList<String> list = new ArrayList<>(); System.out.println("データ(半角英数字)を入力してください"); while (true) { // 入力部分 Scanner sc = new Scanner(System.in); String str = sc.nextLine(); if (str.equals(""))// enter入力で終了 break; list.add(str); break; } // 以下でFileWriter PrintWriterを開く FileWriter fw = new FileWriter("C:\\work\\sample.csv", true);// ここでメソッドを開くtrueは既存のファイルに追加して処理する BufferedWriter bw = new BufferedWriter(fw); int count = 0; // countを指定することで11番目以降にも対応することができる while () { //終了条件を設定する for (int i = count; i < count + 10; i++) { // 10個ずつ取り出して改行する方法 if (list.get(i).equals(null)) break; bw.write(list.get(i)); count++; //countも同様に回すことでiの11番目以降にも対応することができる } bw.write("\r\n"); } fw.close(); bw.close(); System.out.println("ファイルに出力しました"); } catch (FileNotFoundException e) { System.out.println("ファイルが見つかりません"); } catch (IOException e) { e.printStackTrace(); } catch (NullPointerException e) { e.printStackTrace(); } }
}
>javaに関する質問
というのは質問タグでわかるのでタイトルに書かなくて良いです。要件を記載してください。
[3-1. タイトルには要件を書きましょう]
https://teratail.com/help/question-tips#questionTips31