Java

Java) 파일 읽고 데이터 처리하는 2가지 방법

pogun 2025. 1. 5. 00:40

1. 첫 번째 방법

File file = new File("C:\\IJ\\test.txt");

try {
    FileReader fr = new FileReader(file);
    BufferedReader br = new BufferedReader(fr);
    
    int count = 0;
    String str = "";
    while ((str = br.readLine()) != null){
        count++;
    } // 끝까지 가있는 상태

    // 다시 처음 위치로 초기화
    fr = new FileReader(file);
    br = new BufferedReader(fr);

    String nameArr[] = new String[count];
    int index = 0;
    while ((str = br.readLine()) != null){
        nameArr[index] = str;
        index++;
    }
    br.close();

    System.out.println(Arrays.toString(nameArr));
}

: 파일을 한 줄씩 읽으며 데이터의 줄 수(count)를 센다.

: readLine() 메서드는 파일 끝에 도달하면 null로 반환한다.

: 파일 읽기 위치가 파일 끝에 도달했으므로, 다시 처음부터 읽기 위해 fr과 br을 새로 생성.

: 데이터 개수(count)를 기준으로 배열 nameArr을 초기화한다.

: 다시 파일을 읽으며 배열에 데이터를 저장!

2. 두 번째 방법

File file = new File("C:\\IJ\\test.txt");

try {
    FileReader fr = new FileReader(file);
    BufferedReader br = new BufferedReader(fr);
    String names = "";
    String str = "";
    int index = 0;
    
    while((str = br.readLine()) != null){
        names = names + str + "-";
    }
    br.close();

    names = names.substring(0, names.length()-1); // 마지막 "-" 제거하고 가져오기
    System.out.println(names);

    String nameArr[] = names.split("-");
    System.out.println(Arrays.toString(nameArr));

} catch (FileNotFoundException e) {
    throw new RuntimeException(e);
} catch (IOException e) {
    throw new RuntimeException(e);
}

: 파일에서 한 줄씩 읽은 데이터를 str에 저장한다.

: 그리고 모든 줄의 데이터를 결합한 하나의 문자열 데이터를 names에 저장한다.(줄과 줄 사이의 구분자 "-")

: 마지막 "-" 제거하고 가져오기

: "-"로 분리하여 배열 nameArr[]에 저장한다.