Bibi's DevLog ๐ค๐
[Java] CSV ํ์ผ ์ ์ถ๋ ฅ (์ฝ๊ธฐ, ์ฐ๊ธฐ, ์ด์ด์ฐ๊ธฐ) ๋ณธ๋ฌธ
๐ฅ BE ๋ฐฑ์๋/Java ์๋ฐ
[Java] CSV ํ์ผ ์ ์ถ๋ ฅ (์ฝ๊ธฐ, ์ฐ๊ธฐ, ์ด์ด์ฐ๊ธฐ)
๋น๋น bibi 2021. 2. 4. 22:57Java CSV ํ์ผ ์ ์ถ๋ ฅ (์ฝ๊ธฐ, ์ฐ๊ธฐ, ์ด์ด์ฐ๊ธฐ)
๋งํฌ1์์ ์ฝ๊ธฐ๋ฅผ, ๋งํฌ2์์ ์ฐ๊ธฐ๋ฅผ, ๋งํฌ3 ์์ ์ด์ด์ฐ๊ธฐ๋ฅผ ๋ฐฐ์ ์ต๋๋ค.
CSV๋?
: Comma-Separated Values์ ์ฝ์๋ก, ๊ฐ ํ๋๋ฅผ ์ผํ๋ก ๊ตฌ๋ถํ ํ
์คํธ ํ์ผ์ด๋ค.
๋ณดํต ๋งจ ์ฒซ ์ค์๋ ์ปฌ๋ผ ์ด๋ฆ์ด ๋ถ์ด ์๋ค.
name,height,weight
AA,180,80
BB,170,65
.csvํ์ผ์ ๊ธฐ๋ณธ ๋ฉ๋ชจ์ฅ์์๋ ์ฝ๊ฒ ๋ง๋ค ์ ์๋ค. ์ ์ฅ์ ํ์ฅ์๋ฅผ .csv
๋ก ์ง์ ํ๊ธฐ๋ง ํ๋ฉด ๋๋ค.
(ํ์ผ์ ํ๊ธ์ด ํฌํจ๋ ๊ฒฝ์ฐ, ์ ์ฅ์ ์ธ์ฝ๋ฉ์ UTF-8
๋ก ์ง์ ํด์ผ ํ๋ค)
Java CSVํ์ผ ์ฝ๊ธฐ
import java.io.*;
import java.util.*;
public class CSVReader {
public static void main(String[] args) {
CSVReader csvReader = new CSVReader();
csvReader.readCSV();
}
public List<List<String>> readCSV() {
List<List<String>> csvList = new ArrayList<List<String>>();
File csv = new File("์ฌ๊ธฐ์ .csvํ์ผ์ ์ ๋๊ฒฝ๋ก๋ฅผ ์
๋ ฅํ๋ค");
BufferedReader br = null;
String line = "";
try {
br = new BufferedReader(new FileReader(csv));
while ((line = br.readLine()) != null) { // readLine()์ ํ์ผ์์ ๊ฐํ๋ ํ ์ค์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์จ๋ค.
List<String> aLine = new ArrayList<String>();
String[] lineArr = line.split(","); // ํ์ผ์ ํ ์ค์ ,๋ก ๋๋์ด ๋ฐฐ์ด์ ์ ์ฅ ํ ๋ฆฌ์คํธ๋ก ๋ณํํ๋ค.
aLine = Arrays.asList(lineArr);
csvList.add(aLine);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (br != null) {
br.close(); // ์ฌ์ฉ ํ BufferedReader๋ฅผ ๋ซ์์ค๋ค.
}
} catch(IOException e) {
e.printStackTrace();
}
}
return csvList;
}
}
Java CSVํ์ผ ์ฐ๊ธฐ/์ด์ด์ฐ๊ธฐ
public void writeCSV() {
File csv = new File("์ฌ๊ธฐ์ .csvํ์ผ์ ์ ๋๊ฒฝ๋ก๋ฅผ ์
๋ ฅํ๋ค");
BufferedWriter bw = null; // ์ถ๋ ฅ ์คํธ๋ฆผ ์์ฑ
try {
bw = new BufferedWriter(new FileWriter(csv, true));
// csvํ์ผ์ ๊ธฐ์กด ๊ฐ์ ์ด์ด์ฐ๋ ค๋ฉด ์์ฒ๋ผ true๋ฅผ ์ง์ ํ๊ณ , ๊ธฐ์กด ๊ฐ์ ๋ฎ์ด์ฐ๋ ค๋ฉด true๋ฅผ ์ญ์ ํ๋ค
for (int i = 0; i < dataList.size(); i++) {
String[] data = dataList.get(i);
String aData = "";
aData = data[0] + "," + data[1] + "," + data[2] + "," + data[3];
// ํ ์ค์ ๋ฃ์ ๊ฐ ๋ฐ์ดํฐ ์ฌ์ด์ ,๋ฅผ ๋ฃ๋๋ค
bw.write(aData);
// ์์ฑํ ๋ฐ์ดํฐ๋ฅผ ํ์ผ์ ๋ฃ๋๋ค
bw.newLine(); // ๊ฐํ
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (bw != null) {
bw.flush(); // ๋จ์์๋ ๋ฐ์ดํฐ๊น์ง ๋ณด๋ด ์ค๋ค
bw.close(); // ์ฌ์ฉํ BufferedWriter๋ฅผ ๋ซ์ ์ค๋ค
}
} catch (IOException e) {
e.printStackTrace();
}
}
}