[ 221007 ] 파일읽기, parser 제작

최수정·2022년 10월 13일
0

멋쟁이사자처럼

목록 보기
11/14
post-thumbnail

파일 읽고 쓰기

  • 데이터가 메모리에 들어오고 나가는 것을 I/O 입출력이라고 한다.
  • 수 많은 입력장치로 들어오는 데이터를 표준화하여 드라이버를 사용해 번역하여 사용할 수 있도록 I/O Stream이 만들어졌다.
  • steram은 1byte씩 출력하는 Byte Stream과 유니코드로 된 문자를 입출력하는 Character Stream이 있다.

문자 스트림 구조 : Reader/Writer

  • Reader(문자 입력), Writer(문자 출력) 클래스는 JAVA.IO 패키지에 포함되어있는 추상 클래스이며 문자 스트림을 다루는 모든 클래스의 super class이다.

Reader

  • FileReader
    형태: 업캐스팅 오버라이딩
//주 스트림
Reader fr = new FileReader("/Users/Downloads/2021_인구관련연간자료.csv");

//보조 스트림
BufferedReader br = new BufferedReader(fr); --> 주스트림과 연결 인자

Writer

  • FileWriter
    형태: 업캐스팅 오버라이딩
    줄바꿈 메소드 newLine(); : 프로그램에 맞는 줄바꿈 기호를 자동으로 컴파일
    데이터를 추가하여 (RUN+Writer)출력하는 경우 추가된것만 다시 쓰는 것이 아니라 처음부터 다 다시써서 새로운 파일을 만드는 것이다
//주스트림
Writer fw = new FileWriter(""/Users/Downloads/2021_인구관련연간자료.csv");

//보조 스트림
BufferedWriter bw = new BufferedWriter(fw); --> 주스트림과 인자로 연결

💻 실습 ) 대용량 데이터 읽어오기

01. BufferedReader / FileReader


public List<PopulationMove> readByLine(String filename) throws IOException {
        List<PopulationMove> moves = new ArrayList<>(); 
        BufferedReader br = new BufferedReader(
                new FileReader(filename)
        ); 

        String str;
        while ((str = br.readLine()) != null) {
            PopulationMove move = parse(str); 
            pml.add(move);
        }

        br.close();
        return moves; 
    }

readByLineReader로 파일을 불러온 뒤, while문 안에서 string으로 한 줄씩 읽은 뒤에 List에 내용을 담은 뒤 반환한다.

0개의 댓글