JAVA/JAVA_2
Chap04-03_입출력 사용 예시 보조(filter)스트림(BufferReader, BufferWriter)
RoarinGom
2021. 2. 5. 10:01
보조(or filter) Stream의 경우 단독으로 쓰일 수 없어서 노드 stream과 같이 쓰인다
(filterStream 쓰는 이유 기능 성능 향상시켜주기때문에)
InputStream in=System.in;
InputStreamReader isr=new InputStreamReader(in);
BufferedReader br=new BufferedReader(isr);
원래 이런과정 but→ 한줄로 표현 할 것이다
br=new BufferedReader(new InputStreamReader(System.in)); bw=new BufferedWriter(new FileWriter("output.txt"));
예시1)
(while(str=br.readLine())!=null) 입력하다가 입력이 null일 때 이므로 CTRL Z 누르면 입력이 안된 null로 그래서 while문 끝난다. NodeStream 리소스 젤앞에 붙어있는 stream 바로 연결해서 사용할 수 있다 FilterStream 리소스에 바로 붙을 수는 없고 노드가 리소스에 붙어있으면 쓸 수 있다)
package javaBasic_2.class06.api_입출력IO;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.InputStream;
import java.io.InputStreamReader;
public class BufferTest01 {
public static void main(String[] args) {
// Scanner 객체 사용하지말고 입출력 Stream 을 이용해서 구현해보자
// System.in (키보드로 부터 입력 받아서) :InputStream을 리턴 받아옴
//InputStream(Byte)=>InputStreamReader(문자) 바이트 stream이 문자 stream으로
//=> BufferedReader (InputStreamReader에다가 한 줄씩 한줄 씩 읽어준다)
//입력하다가 그만하고 싶으면 ctrl z 눌러주면된다. (CTRL Z는 더이상 입력안하는 null과 같다)
// <원래 과정===>
// InputStream in=System.in;
// InputStreamReader isr=new InputStreamReader(in);
// BufferedReader br=new BufferedReader(isr);
BufferedReader br=null; //출력스트림
BufferedWriter bw=null; //입력스트림
String str="";
try {
br=new BufferedReader(new InputStreamReader(System.in));
bw=new BufferedWriter(new FileWriter("output.txt"));
System.out.println("입력:");
while((str=br.readLine())!=null) {
str+="\n";
bw.write(str);
}
} catch (Exception e) {
e.printStackTrace();
}finally {
try {
bw.close();
br.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
}
}