Welcome to My World (www.dgmayor.com)

소프트웨어 (과거)/자바 GUI & C# 등...

18. 자바 CSV 활용법 (완성)

dgmayor 2022. 2. 23. 17:32
728x90

세이브 방식




private static void Save() {

try {

FileWriter fw = new FileWriter((values.file_path), true);

BufferedWriter bw = new BufferedWriter(fw);

bw.write("번호, 이름, 가격, 수량");
bw.write(System.lineSeparator());

bw.write("1, 파이리, 500, 30개");
bw.write(System.lineSeparator());

bw.write("2, 꼬부기, 1000, 20개");
bw.write(System.lineSeparator());

bw.write("3, 이쌍해씨, 1500, 10개");
bw.write(System.lineSeparator());

bw.flush();

bw.close();


} catch (Exception e) {

e.printStackTrace();

}
}

로드 방식

 

static ArrayList<String> COC = new ArrayList<String>();

public static void load() {

String line = "";

try {

FileReader fr = new FileReader(values.file_path);
BufferedReader br = new BufferedReader(fr);

while( (line = br.readLine()) != null ) {
COC.add(line);
}

br.close();


} catch (Exception e) {

e.printStackTrace();

}

}


//////////////////////////////////////////////////////////////


for (int index = 0; index < COC.size(); index++) {
System.out.println(COC.get(index));
}

에러가 있어서 새로 작성

 

[error] (run-main-0) java.nio.charset.MalformedInputException: Input length = 1 

이전 소스로 작성 했을 때, utf 에러가 계속 떠서....

위와 같이 결국엔 해결......

 

csv 파일을 사용하는 방법은 개발자 마다 다 다르고, 블로그 마다 정리도 다르고,

에러 해결법도 다 달라서 애를 엄청 먹었다.

 

그럼에도 불구하고, 필자는 결국에 정말 깔끔한 해결방법을 찾아 내었다.

 

아래 부터는 개량형이다.

public static void Coffee_Load(){

String line_A = "";

String[] line_B;

int i = 0;

try{

FileReader fr = new FileReader(values.file_path);

BufferedReader br = new BufferedReader(fr);

while((line_A = br.readLine()) != null) {

int i = 0;

line_B = line_A.split(",");

for(int j = 0; j < line_B.length; j++) {

Coffee_Value[i][j] = line_B[j];

System.out.print(Coffee_Value[i][j] + " ");

}

i++;

System.out.println();

}

br.close();

} catch (Exception e) {

e.printStackTrace();

}

}

 

Coffee_Save() {

try {

FileWriter fw = new FileWriter(values.file_path, false);

BufferedWriter bw = new BufferedWriter(fw);

for(int i=0; i<Coffee_Value.length; i++) {

for(int j=0; j<Coffee_Value[i].length; j++){

bw.write(Coffee_Value[i][j]);

bw.write(",");

}

bw.write(System.lineSeparator());

}

bw.flush();

bw.close();

} catch (IOException e) {

e.printStackTrace();

}

}

학교에서 배운 구구단을 처음으로 유용하게 쓴 것 같다.

ㅡㅡㅡㅡㅡ 추가;;;;

완벽했는데.... i 위치로 에러 발생.... 정정하였다.

 

 

 

 

 

728x90