혼공단7기는 끝났지만.. 공부는 계속하면서 c언어와 번갈아가면서 포스팅할 예정
입출력 스트림
: 단일 방향으로 연속적으로 데이터가 입력이나 출력이 되는 곳
(각각 추상 클래스인 최상위 클래스)
Input Stream
: 바이트 기반 입력 스트림
// 1 바이트 읽기
read()
// 읽은 바이트를 매개값으로 주어진 배열에 저장, 읽은 바이트 수 리턴
read(byte[] b)
// len 개의 바이트 읽고 b[off]부터 len 까지 저장
read(byte[] b, int off, int len)
// 입력 스트림 닫기
close()
// 1개 문자 읽기
read()
// 읽은 문자를 매개값으로 주어진 배열에 저장, 읽은 문자 수 리턴
read(char[] cbuf)
// len 개의 문자 읽고 cbuf[off]부터 len 까지 저장
read(char[] cbuf, int off, int len)
// 입력 스트림 닫기
close()
// 주어진 한 문자
write(int c)
// 매개값으로 주어진 배열 모든 문자
write(char[] cbuff)
// cbuff[off] 부터 len개 까지의 문자
write(char[] cbuff, int off, int len)
// 매개값으로 주어진 문자열
write(String str)
// 매개값으로 주어진 문자열 off 부터 len개 까지 문자열
write(String str, int off, int len)
// 버퍼에 잔류하는 모든 문자열 출력
flush()
// 출력 스트림 닫기
close()
// 주어진 한 문자
write(int c)
// 매개값으로 주어진 배열 모든 문자
write(char[] cbuff)
// cbuff[off] 부터 len개 까지의 문자
write(char[] cbuff, int off, int len)
// 매개값으로 주어진 문자열
write(String str)
// 매개값으로 주어진 문자열 off 부터 len개 까지 문자열
write(String str, int off, int len)
// 버퍼에 잔류하는 모든 문자열 출력
flush()
// 출력 스트림 닫기
close()
보조 스트림
: 다른 스트림과 연결되어 여러 가지 편리한 기능을 제공해주는 스트림
문자 변환
: 소스 스트림이 바이트 기반 스트림이면서 입출력 데이터가 문자라면 Reader와 Writer
성능 향상
: 기본적으로 출력 스트림은 내부에 작은 버퍼를 내장
기본 타입 입출력
: DataInputStream과 DataOutputStream 보조 스트림을 연결하면 기본 타입인 boolean, char, short 등등 을 입출력할 수 있다
개행 출력
PrintStram / PrintWriter의 println() 메소드는 출력할 데이터 끝에 개행 문자인 '\n'을 추가, 출력 시 콘솔이나 파일에서 줄 바꿈이 일어남
public class AddLineNumberExample {
public static void main(String[] args) throws Exception {
// 메인 클래스 경로를 저장
String filePath = "src/com/callor/iostream/AddLineNumberExample.java";
// 경로 파일 reader
FileReader reader = new FileReader(filePath);
// bufferReader를 통해 파일 reader
BufferedReader br= new BufferedReader(reader);
String data = "";
int i = 1;
// 다음 줄이 없을때까지 data에 읽기
while( (data = br.readLine() ) != null) {
// 한 줄 출력하고 1씩 증가하기
System.out.printf("%02d : %s\n", i++, data);
}
}
}