티스토리 뷰
1. InputStream, OutputStream(말단 Stream)
-1byte 단위
-한글이 깨짐(한글은 2byte이므로)
2. Reader, Writer
-2byte 단위
-InputStreamReader, OutputStreamWriter
ex) Reader reader = new InputStreamReader(System.in);
- 한글 한글자씩 입력 또는 출력 가능
3. BufferedReader, BufferedWriter
-Buffer에 2byte 씩 저장
-readLine() 메서드를 통해 한 line 씩 입력 또는 출력 가능
ex)
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String s = in.readLine();
4. File IO
1)Read
FileInputStream - 1byte 단위
FileReader - 2byte 단위
BufferedReader(new FileReader("a.txt"));
ex)
try{
FileReader fr = new FileReader("a.txt");
BufferedReader br = new BufferedReader(fr);
String temp = null;
int i=0;
while((temp=br.readLine())!=null){
System.out.println((i++)+" "+temp);
}
br.close(); // close 순서 주의!
fr.close();
}catch(Exception e){
System.out.println(e);
}
2)Write
ex)
try{
FileReader fr = new FileReader("a.txt");
BufferedReader br = new BufferedReader(fr);
FileWriter fw = new FileWriter("b.txt");
BufferedWriter bw = new BufferedWriter(fw);
String temp = null;
int i=0;
while((temp=br.readLine())!=null){
bw.write((i++)+" "+temp+"\r\n");
}
bw.close();
fw.close();
br.close();
bw.close();
}catch(Exception e){
System.out.println(e);
}
5. BufferedWriter에 비해 PrintWriter 가 더 많은 기능을 가지고 있음
PrintWriter pw = new PrintWriter("a.txt");
PrintWriter pw2 = new PrintWriter(new FileWriter("a2.txt"));
PrintWriter pw3 = new PrintWriter(new FileOutputStream("a3.txt"));
-위의 예에서 보듯이 PrintWriter는 말단 Stream으로도 사용되고(pw), FilterStream으로도 사용된다(pw2,pw3)
ex)
try{
PrintWriter pw = new PrintWriter("a.txt");
PrintWriter pw2 = new PrintWriter(new FileOutputStream("a2.txt"));
PrintWriter pw3 = new PrintWriter(new FileWriter("a3.txt"));
pw.write("hi");
pw2.write("hello");
pw3.write("bye");
pw.flush(); // close() 시키지 않아도 강제로 버퍼의 값을 파일에 출력
pw2.flush();
pw3.flush();
pw.close();
pw2.close();
pw3.close();
}catch(Exception e){
System.out.println(e);
}
'Java' 카테고리의 다른 글
String==null 과 String.isEmpty() 의 차이 (0) | 2017.01.24 |
---|---|
ArrayList의 contains 메서드를 활용하는 방법 (0) | 2017.01.24 |
TreeSet, TreeMap을 위한 Comparable 인터페이스 (0) | 2017.01.13 |
Collection(컬렉션) (0) | 2017.01.13 |
instanceof 연산자 (0) | 2017.01.12 |