본문 바로가기
CLASS/JAVA

#14-1 / FileReader => Buffer

by hingu 2024. 5. 21.

Buffer : 메모리를 활용하여 데이터를 출력 또는 입력(temp : 임시저장소)

buffer는 기억하는애

FileReader fr = new FileReader(url);
System.out.println((char)fr.read());

//파일을 읽을때 해당 방식은 텍스트 파일의 한글자만 출력됨..

▶  이걸 개선한게 Buffer

 

⚡ Buffer
FileReader fr = new FileReader(url);
BufferedReaderbr = new BufferedReader(fr); ( 이걸 맞춰주면 에러날일 X  , buffer가 먼저 나올 순 없음)

👀주의
- reader(or write) 선언 후 buffer 선언
- Buffer는 임시 저장된 공간의 데이터이므로 read 또는 readLine() 사용시
  무조건 데이터는 순차적으로 삭제시킨다 (조건문 사용 주의 , 반목문으로 출력할것!)
public static void main(String[] args) {
    try {
        String url = "D:\\webpage\\agree\\src\\main\\java\\io\\agree.txt";
        FileReader fr = new FileReader(url);
        BufferedReader br = new BufferedReader(fr); //임시 저장소에 저장됨

        /*while(true) {
            String msg = br.readLine();  //임시저장소 값 공백 포함 읽어들임
            if(msg != null) {
                System.out.println(msg);
            }else {
                break;
            }
        }*/

        //좀더 간단
        String msg="";
        while((msg = br.readLine()) != null) { //null 작동 -> false(반복문 종료)
            System.out.println(msg);
        }

        br.close(); //buffer 종료(필수)
        fr.close(); //reader 종료(필수)
    }catch(Exception e) {
        System.out.println(e.getMessage());
    }
}

 

⚡ LineNumberReader 
해당 문서에 라인 갯수를 확인 - 잘 안씀..

FileReader fr = new FileReader(url);
LineNumberReader lr = new LineNumberReader(fr); 
public static void main(String[] args) {
    String url = "D:\\webpage\\agree\\src\\main\\java\\io\\agree.txt";
    try {
        FileReader fr = new FileReader(url);
        LineNumberReader lr = new LineNumberReader(fr);
        int n = 0;
        while(lr.readLine() != null) { //int
            n = lr.getLineNumber();
            System.out.println(n);
        }

        lr.close();
        fr.close();

    }catch(Exception e) {
        System.out.println(e.getMessage());
    }

}

'CLASS > JAVA' 카테고리의 다른 글

#14-3 / Stream 활용법  (0) 2024.05.21
#14-2 / nio  (0) 2024.05.21
#13-4 / I/O 🔥  (0) 2024.05.20
#13-3 / Map클래스배열(Key배열)  (0) 2024.05.20
#13-2 / Thread  (0) 2024.05.20