본문 바로가기
CLASS/JAVA

#15-2 / StreamWriter,StreamReader

by eungSe__ 2024. 5. 22.

Stream의 기본은 byte , Reader의 기본은 string

read를 사용하면 buffered에는 1개 loss데이터 발생

InputStreamReader 

InputStreamReader : Stream + Reader,변환 가능한 라이브러리
public static void main(String[] args) {
    try {
        //InputStreamReader : Stream + Reader,변환 가능한 라이브러리
        System.out.println("입력값 : ");
        InputStreamReader isr = new InputStreamReader(System.in);
        //int data = isr.read();//read를 사용하면 buffered에는 1개 loss데이터 발생

        //InputStreamReader -> BufferedReader 
        BufferedReader br = new BufferedReader(isr);
        System.out.println(br.readLine()); //입력된 모든 값을 출력


        OutputStreamWriter osw = new OutputStreamWriter(System.out);
        BufferedWriter bw = new BufferedWriter(osw);

        // 한줄로 쓰는법
        //BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        String msg = "고객님의 포인트는 10000입니다";
        bw.write(msg);

        bw.close();
        osw.close();
        br.close();
        isr.close();

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

 

 

⭐ ⭐ ⭐ ⭐ ⭐ ⭐ ⭐

 InputStream > InputStreamReader > BufferedReader (O)
 InputStream > BufferedReader (X)
 InputStream > BufferedInputStream (O)
 InputStreamReader > BufferedReader (O)
 
 ※ BufferedReader - close() 메모리 종료 필수 , BufferedWriter - flush()+close() 필수

⚡ Stream + Reader 응용편 (많이씀) => 중요!!
public static void main(String[] args) throws Exception{
    String url = "D:\\webpage\\agree\\src\\main\\java\\io\\agree.txt";
    File f = new File(url); //해당 파일 가져옴
    FileOutputStream fos = null; 
    OutputStreamWriter osw = null; //stream과 buffer 사이를 왓다갓다 하게 해주는 중간다리
    BufferedWriter bw = null;
    try {
        fos = new FileOutputStream(f); //byte로 읽음 (true는 여기에 사용)
        osw = new OutputStreamWriter(fos); //받아서 변환하는 역할(Stream -> Writer)
        bw = new BufferedWriter(osw); //메모리를 활용(종착역)

        bw.append("이메일 정책 추가사항 \n\n");
        bw.append("본 이메일 정책에 변경된 사항이 있습니다");
        bw.flush(); //메모리 영역을 완전 초기화(필수!)

        //input으로 출력
        InputStream is = new FileInputStream(f);
        InputStreamReader isr = new InputStreamReader(is);
        BufferedReader br = new BufferedReader(isr);
        System.out.println(br.readLine());

        br.close();
        isr.close();
        is.close();

    }catch(Exception e) {
        e.getMessage();
    }finally {
        bw.close();
        osw.close();
        fos.close();
    }

 

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

#16-1 / network 🔥  (0) 2024.05.23
#15-3 / csv 데이터 저장  (0) 2024.05.22
#15-1 / 이미지(binary)  (0) 2024.05.22
#14-3 / Stream 활용법  (0) 2024.05.21
#14-2 / nio  (0) 2024.05.21