Java練習コード CSVファイルから抽出したデータをCSVに保存
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args){
CSVReader();
}
public static void CSVReader() {
String csvFile = "c03.csv";
String outputFile = "write.csv";
String line;
String delimiter = ",";
List<String[]> populationDataList = new ArrayList<>();
try (BufferedReader br = new BufferedReader(new FileReader(csvFile))) {
br.readLine();
while ((line = br.readLine()) != null) {
String[] data = line.split(delimiter);
if (data.length > 1 && data[2].equals("総数")) {
populationDataList.add(data);
}
}
for (String[] data : populationDataList) {
System.out.print("年齢5歳階級:" + data[2]);
System.out.print(" 元号:" + data[3]);
System.out.print(" 人口(総):" + data[6]);
System.out.print(" 人口(男):" + data[7]);
System.out.println();
}
saveDataToFile(populationDataList, outputFile);
} catch (IOException e) {
e.printStackTrace();
}
}
public static void saveDataToFile(List<String[]> dataList, String outputFile) {
String delimiter = ",";
boolean append = false;
try (BufferedWriter bw = new BufferedWriter(new FileWriter(outputFile, append))) {
bw.write("都道府県コード,都道府県名,年齢5歳階級,元号,和暦(年),西暦(年),人口(総数),人口(男),人口(女)");
bw.newLine();
for (String[] data : dataList) {
bw.write(String.join(delimiter, data));
bw.newLine();
}
System.out.println("データの保存が完了しました。");
} catch (IOException e) {
e.printStackTrace();
}
}
}