前提・実現したいこと
改行を含むCSVファイルの入力と出力
ここに質問の内容を詳しく書いてください。
現在、CSVファイルを読み込んで、その内容を入れ替えて新たなCSVファイルを出力しようとしています。しかし、CSVファイルのセルの中に改行を含むものがあり、それらをうまく読み込むことができません。また、改行を含むセルは複数回改行をするものがほとんどです。
具体的には、このようなCSVファイルを
次のように変更できるようにしたいです。
発生している問題・エラーメッセージ
改行された部分を読み込もうとすると、最初の1行しか読みこまれず、それ以降のセルも読み込むことができない状況にあります。
該当のソースコード
java
1import java.io.*; 2 3public class www { 4 private final static String inputCsvFile = "database.csv"; 5 private final static String outputCsvFile = "datashopify.csv"; 6 7 public static void main(String[] args) { 8 final int max_data = 1000; 9 String[][] data = new String[max_data][]; 10 File inputFile = new File(inputCsvFile); 11 File outputFile = new File(outputCsvFile); 12 BufferedReader in = null; 13 BufferedWriter out = null; 14 try { 15 in = new BufferedReader(new FileReader(inputFile)); 16 out = new BufferedWriter(new FileWriter(outputFile)); 17 String line; 18 int index = 0; 19 20 while ((line = in.readLine()) != null) 21 data[index++] = line.split(","); 22 out.newLine(); 23 for (int i = 1; i < data[0].length; i++) { 24 out.write(data[i][0] + ", " + data[i][2] + ", " + data[i][1]); 25 } 26 27 System.out.println(data[1][2]); 28 29 } catch (FileNotFoundException e) { 30 e.printStackTrace(); 31 } catch (IOException e) { 32 e.printStackTrace(); 33 } finally { 34 try { 35 in.close(); 36 out.close(); 37 } catch(IOException e) { 38 System.out.println("close fail"); 39 e.printStackTrace(); 40 } 41 } 42 } 43} 44
試したこと
他の方もこの件に関してteratail等の質問サイトなどで質問していたので、それらと同様にコードを組んでみたりしたのですが、やはりうまくいきませんでした。
補足情報(FW/ツールのバージョンなど)
どなたか教えていただけると幸いです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。