<문자 기반 입출력 스트림>
1. FileWriter
1. 문자기반의 출력 스트림
2. 문자를 보낼 때 사용한다.
1) 통신 : 상대방에게 문자를 보낼 때
2) 파일 : 텍스트 파일을 만들 때
3. 출력 메소드
write()
4. 출력 단위
int(한글자를 실어나를 때), char[](여러 글자를 실어나를 때) , String(여러 글자를 실어나를 때)
2. FileReader
1. 문자기반의 입력 스트림
2. 문자를 읽을 때 사용
1) 통신 : 상대방이 보낸 문자를 읽을 때
2) 파일 : 텍스트 파일을 읽을 때
3. 입력메소드
read()
4. 입력 단위
int(한 개 읽을 때), char[] (여러개 읽을 때)
* int사용하는 경우 End of File(EOF)일 때 -1을 출력해야하는데 그러기 위해서 4byte가 필요하고 char는 2byte이기 때문에 이를 해결하기 위해 int로 함 )
예제(self)
import java.io.FileWriter;
import java.io.IOException;
public class ex1_fileWriter {
public static void main(String[] args) {
try(FileWriter fw = new FileWriter("text3.txt")){
int a ='a';
char[] cbuf = {'a','b','c','d','e'};
String str = "filewriter test";
fw.write(a);
fw.write('\n');
fw.write(cbuf);
fw.write('\n');
fw.write(str);
System.out.println("FileWriter 성공 ");
} catch(IOException e) {
e.printStackTrace();
}
}
}
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class ex2_fileReader {
public static void main(String[] args) {
try(FileReader fr = new FileReader("text3.txt")){
while(true) {
int ch = fr.read();
if(ch == -1) {
System.out.println("\ntext3.txt 읽기 성공");
break;
}
System.out.print((char)ch);
}
}catch(FileNotFoundException e) {
e.printStackTrace();
}catch(IOException e) {
e.printStackTrace();
}
}
}
<문자 기반 입출력 보조스트림>
1. BufferedWriter/BufferedReader 클래스
1. 문자 기반의 출력/입력 보조 스트림이다.
2. FileWriter / FileReader 클래스와 같은 메인스트림과 함께 사용한다.
3. 내부 버퍼를 이용해서 동작 속도를 향상시킨다.
예제(self)
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
public class ex1_char_BufferedWriter {
public static void main(String[] args) {
try(BufferedWriter bw = new BufferedWriter(new FileWriter("text4.txt"))){
bw.write("자바화이팅");
bw.write("\n공부는 꾸준히!\n");
System.out.println("text4.txt 성공");
}catch(IOException e) {
e.printStackTrace();
}
}
}
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class ex2_char_BufferedReader {
public static void main(String[] args) {
try(BufferedReader br = new BufferedReader(new FileReader("text4.txt"))){
StringBuilder sb = new StringBuilder();
char[] cbuf = new char[10];
int readCount = 0;
while ( (readCount = br.read(cbuf)) != -1) {
sb.append(cbuf, 0, readCount);
}
System.out.println(sb);
System.out.println("BufferdReader 성공");
}catch(FileNotFoundException e) {
e.printStackTrace();
}catch(IOException e) {
e.printStackTrace();
}
}
}
'국비 > JAVA' 카테고리의 다른 글
바이트 기반 (보조)Stream (0) | 2021.09.02 |
---|---|
컬렉션 프레임워크 (0) | 2021.09.01 |
LOMBOK (0) | 2021.09.01 |
상속_추상클래스와 인터페이스 (0) | 2021.08.30 |
메서드,반복문, 조건문을 이용한 자판기만들기 (0) | 2021.08.29 |
댓글