CLASS/JAVA
#15-2 / StreamWriter,StreamReader
hingu
2024. 5. 22. 14:33
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(); }