現在、Javaで5つの400項目あるCSVファイルを取り込み、それぞれの列を結合して1つの2000項目のファイルにして出力するプログラムを組んでいます。
しかしながら、Javaはあまり触れたことがなく、どのように実装すればよいかアイディアが浮かばず止まっています。
どのような処理を使えばよいでしょうか?
ご教示お願い致します。
一つ試している方法は
それぞれ5つのファイルをArrayList<String[]>で取り込み、1つのArrayList<String[]>にして
新たに出力する方法をとろうとしましたがエラーが出てとん挫しております。
以下、そのコードです。
package routines;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
public class CSVWriterReader {
/** * main * @param args the command line arguments */ public static void CSVExcute(String file_name) { String filename_1 = file_name.substring(0, file_name.length() - 4) + "1" + ".csv" ; String filename_2 = file_name.substring(0, file_name.length() - 4) + "2" + ".csv" ; String filename_3 = file_name.substring(0, file_name.length() - 4) + "3" + ".csv" ; String filename_4 = file_name.substring(0, file_name.length() - 4) + "4" + ".csv" ; String filename_5 = file_name.substring(0, file_name.length() - 4) + "5" + ".csv" ; /*read CSV*/ CSVScanner csvscan_1 = new CSVScanner(new File(filename_1)); CSVScanner csvscan_2 = new CSVScanner(new File(filename_2)); CSVScanner csvscan_3 = new CSVScanner(new File(filename_3)); CSVScanner csvscan_4 = new CSVScanner(new File(filename_4)); CSVScanner csvscan_5 = new CSVScanner(new File(filename_5)); ArrayList<String[]> csv_data_1 = csvscan_1.read(); ArrayList<String[]> csv_data_2 = csvscan_2.read(); ArrayList<String[]> csv_data_3 = csvscan_3.read(); ArrayList<String[]> csv_data_4 = csvscan_4.read(); ArrayList<String[]> csv_data_5 = csvscan_5.read(); //String[] array = csvscan.toArray(new String[csvscan.size()]); ArrayList<String[]> csv_data = new ArrayList<String[]>(); long arrayitems = csv_data_1.size(); for (int i =0;i<arrayitems;i++){ StringBuilder buf = new StringBuilder(); buf.append(csv_data_1.get(i)); buf.append(csv_data_2.get(i)); buf.append(csv_data_3.get(i)); buf.append(csv_data_4.get(i)); buf.append(csv_data_5.get(i)); String lineword = buf.toString(); csv_data.add(lineword); ←※ここの"add"でエラー } /*write CSV*/ //CSVPrintWriter csvpw = new CSVPrintWriter(file_name , true); try{ File csvpw = new File(file_name); FileWriter filewriter = new FileWriter(csvpw, true); for (int i =0;i<arrayitems;i++){ filewriter.write(csv_data.get(i) + "¥r¥n"); } filewriter.close(); }catch(IOException e){ System.out.println(e); }
// csv_data.stream().forEach(
//
// //line->System.out.println(Arrays.toString(line))
// line->csvpw.println(Arrays.toString(line))
//
// );
//csvpw.println(csv_data);
csvscan_1.close(); csvscan_2.close(); csvscan_3.close(); csvscan_4.close(); csvscan_5.close(); //csvpw.close(); }
}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/31 00:14