728x90
작업 전, 정리하기
자바에서 2021_인구관련연간자료_20221006_45659.csv파일을 읽는다.읽은 파일의 내용 중 전출, 전입 코드 분석하여 split을 한 뒤 Class에 저장한다.- 생산자에 대입된 Class의 정보를 txt파일로 저장한다.
- 저장된 txt파일을 읽은 뒤 차트 양식에 맞춰서 데이터를 수정한다.
- 수정된 데이터에 원하는 정보 값(지역별 인구 이동 결과)을 얻기 위한 가공을 시작한다.
- 가공된 정보를 차트 양식에 맞춰 txt 파일로 추출한다.
- 추출한 값을 차트 양식에 대입한다.
1. txt파일로 저장하기
public class PopulationStatistics {
public static void main(String[] args) throws IOException {
...
PopulationStatistics ps = new PopulationStatistics();
List<PopulationMove> pml = ps.readByLine(fileAddress);
// $$(전출코드),$$(전입코드) 형식으로 파일 정리.
String filename = "P:\\Study\\BootSpring\\TIL\\likelion_adu\\src\\file\\mdis\\splitData.txt";
ps.createFile(filename);
List<String> inData = new ArrayList<>();
for (PopulationMove pm : pml) {
String str = pm.getFromSido() + "," + pm.getToSido() + "\n";
inData.add(str);
}
ps.write(inData, filename);
}
}
- 생성할 파일의 위치와 이름을 작성합니다.
- 저는 P드라이브의 ... mdis폴더에서 splitData.txt 파일을 생성하겠습니다.
- createFile 메소드를 사용하여 파일을 생성합니다.
- 해당 파일의 내용을 담을 arrayList를 생성합니다.
- 반복문을 사용하여 ArrayList pml의 pm을 하나씩 꺼내어 String 변수에 가공 후 저장합니다.
- 가공된 String 데이터를 ArrayList inData에 저장합니다.
- 모두 저장된 데이터를 파일에 덮어 씌웁니다.
1) createFile(filename)
public void createFile(String filename) {
File file = new File(filename);
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
- 자바의 File 클래스를 불러옵니다.
- File클래스를 다룰 때 필요한 예외처리를 작성한 후 파일을 생성합니다.
2) write(List<String> srs, String filename)
// 파일 작성하기 (생성된 파일에 내용 집어넣기)
public void write(List<String> strs, String filename) {
File file = new File(filename);
try {
BufferedWriter bw = new BufferedWriter(new FileWriter(file));
for (String str : strs) {
bw.write(str);
}
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
- File 클래스를 사용하여 filename을 받아오는 file 객체를 생성합니다.
- BufferedWriter 중 new FileWriter를 생성할 때 file을 대입합니다.
- List<String> strs를 향상된 for문을 사용하여 하나씩 꺼내 file에 추가(bw.write(str))합니다.
- 반복문이 끝난 뒤 BufferedWriter를 닫아줍니다.
- close를 해야 하는 이유
반응형
'회고록 > Archive' 카테고리의 다른 글
[Java] 대용량 데이터 분석 - 4 (대한민국 인구 유동(전입, 전출) 데이터 분석 & 처리) (0) | 2022.10.11 |
---|---|
[Java] 대용량 데이터 분석 - 3 (0) | 2022.10.11 |
[Java] 대용량 데이터 분석 - 1 (0) | 2022.10.10 |
[Java] 대용량 데이터 분석 - 0 (0) | 2022.10.10 |
[멋쟁이사자처럼 백앤드 스쿨 2기] 01. 2차 과제 그리고 최종 합격 (4) | 2022.09.15 |