본문으로 바로가기

[java] csv 파일 읽기

category 프로그래밍 2021. 9. 16. 19:30
728x90

구글폼에서 데이터를 엑셀 파일로 저장하고 해당 데이터를 사용하여 프로그램을 사용 할 경우가 생겼다.

그래서 엑셀에서 csv 파일로 떨구고 java 프로그램으로 읽어서 사용하기로 하였다.

 

예를 들어 아래와 같은 player.csv 파일을 만들고,

name,age
손흥민,29
이강인,20
박지성,40


filePath에 해당 경로를 넣어주면,

 

private List<List<String>> readCSVFile(String filePath) {

    List<List<String>> list = new ArrayList<List<String>>();
    BufferedReader bufferedReader = null;

    try {
      bufferedReader = Files.newBufferedReader(Paths.get(filePath));
      String line = "";

      while ((line = bufferedReader.readLine()) != null) {

        List<String> stringList = new ArrayList<>();
        String stringArray[] = line.split(",");

        stringList = Arrays.asList(stringArray);
        list.add(stringList);
      }
    } catch (IOException e) {
      e.printStackTrace();
    } finally {
      try {
        assert bufferedReader != null;
        bufferedReader.close();
      } catch (IOException e) {
        e.printStackTrace();
      }
    }

    return list;
  }

 

728x90

 

맨위 리스트의 0번 인덱스는 첫번째 줄의 내용이 담기고, 해당 리스트의 0번 인덱스는 이름, 1번 인덱스에는 나이가 저장된다.

리스트에는 순서대로 데이터가 담겨지고,

 

    List<List<String>> list = readCSVFile("player.csv");
    
    for (List<String> item : list) {
        System.out.println(item.get(0) + "의 나이는 " + item.get(1) + "살 입니다.");
    }

 

실행을 시키면 아래처럼 출력이 됩니다.

name의 나이는 age살 입니다.
손흥민의 나이는 29살 입니다.
이강인의 나이는 20살 입니다.
박지성의 나이는 40살 입니다.

 

728x90