혼자 공부하는 자바 ( 6주차 )

silver_bean·2022년 2월 27일
0

혼공단

목록 보기
12/16

잡담

혼공단7기는 끝났지만.. 공부는 계속하면서 c언어와 번갈아가면서 포스팅할 예정

6주차 미션

  1. 입출력 스트림 요약 정리하여 포스팅하기
  2. p632 문제 2번 풀고, 풀이 과정 설명하기

1. 입출력 스트림 요약 정리하여 포스팅하기

  • 입출력 스트림
    : 단일 방향으로 연속적으로 데이터가 입력이나 출력이 되는 곳
    (각각 추상 클래스인 최상위 클래스)

  • Input Stream
    : 바이트 기반 입력 스트림

// 1 바이트 읽기
read()
// 읽은 바이트를 매개값으로 주어진 배열에 저장, 읽은 바이트 수 리턴
read(byte[] b)
// len 개의 바이트 읽고 b[off]부터 len 까지 저장
read(byte[] b, int off, int len)
// 입력 스트림 닫기
close()
  • Output Stream
    : 바이트 기반 출력 스트림
// 1개 문자 읽기
read()
// 읽은 문자를 매개값으로 주어진 배열에 저장, 읽은 문자 수 리턴
read(char[] cbuf)
// len 개의 문자 읽고 cbuf[off]부터 len 까지 저장
read(char[] cbuf, int off, int len)
// 입력 스트림 닫기
close()
  • Reader
    : 문자 기반 입력 스트림
// 주어진 한 문자
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()
  • Writer
    : 문자 기반 출력 스트림
// 주어진 한 문자
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'을 추가, 출력 시 콘솔이나 파일에서 줄 바꿈이 일어남

2. p632 문제 2번 풀고, 풀이 과정 설명하기

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);
		}
	}
}

0개의 댓글