문자 단위 스트림
- Reader : 문자 단위로 읽는 최상위 스트림
- Writer: 문자 단위로 쓰는 최상위 스트림
추상 메서드를 포함한 추상 클래스로 하위 클래스가 상속받아 구현
■ reader클래스
스트림 클래스 | 설명 |
FileReader | 파일에서 문자 단위로 읽는 스트림 클래스 |
InputStreamReader | 바이트 단위로 읽는 자료를 문자로 변환 해주는 보조 스트림 클래스 |
BufferedReader | 문자로 읽을 때 배열을 제공하여 한꺼번에 읽을 수 있는 기능을 제공해주는 보조 스트림 |
■ writer클래스
스트림 클래스 | 설명 |
FileWriter | 파일에 문자 단위로 출력하는 스트림 클래스 |
OutputStreamWRiter | 파일에 바이트 단위로 출력한 자료를 문자로 변환해 주는 보조 스트림 |
BufferedWriter | 문자로 쓸 때 배열을 제공하여 한꺼번에 쓸 수 있는 기능을 제공해주는 보조 스트림 |
■ FileReader / FileWriter
- 파일에 문자를 읽고 쓸때 가장 많이 사용하는 클래스
- 문자의 인코딩 방식을 지정할 수 있다.
package reader;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
public class FileReaderTest {
public static void main(String[] args) throws IOException {
//
FileReader fis1 = new FileReader("reader.txt");
//바이트 단위이기 떄문에 한글이 깨짐
FileInputStream fis = new FileInputStream("reader.txt");
int i ;
int s ;
//한글/영어가깨짐
while((i=fis.read()) !=-1) {
System.out.print((char)i);
}
//한글과 영어 모두 잘 읽혀짐
while((s=fis1.read()) !=-1) {
System.out.print((char)s);
}
fis.close();
}
}
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
-나중 꼭 참조-
- 소켓 바이트로 읽고-> 인풋스트림리더로 다시변환(보조스트림의사용) 숙지
package reader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
public class FileReaderTest {
public static void main(String[] args) throws IOException {
//FileInputStream byte단위로 읽고 나서 소켓 같은 경우 무조건 바이트 단위로 읽는다.
// 그런경우 다시 변환 할 경우에 InputStreamReader을 사용해서 다시 변환해줘야한다.(보조스트림)
FileInputStream fis = new FileInputStream("reader.txt");
//보조스트림
InputStreamReader isr = new InputStreamReader(fis);
int i ;
while((i=isr.read()) !=-1) {
System.out.println((char)i);
}
isr.close();
}
}
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
■ Writer 사용
package writer;
import java.io.FileWriter;
import java.io.IOException;
public class FileWriterTest {
public static void main(String[] args) throws IOException {
FileWriter fw = new FileWriter("writer.txt");
fw.write('A');
char[] buf = {'B','C','D','E','F'};
fw.write(buf);
fw.write("안녕하세요");
//D,E출력
fw.write(buf,2,2);
fw.close();
System.out.println("THE END");
}
}
반응형
'JAVA' 카테고리의 다른 글
보조 스트림 (0) | 2019.10.23 |
---|---|
Socket통신 HTTP 통신 (0) | 2019.10.22 |
바이트 단위 입출력 스트림 (0) | 2019.10.19 |
자바 입출력 스트림 (0) | 2019.10.18 |
Multi-Thread 프로그래밍 (0) | 2019.10.17 |