반응형



혼공자바 6주차 : 입출력 스트림 요약 정리 포스팅, 632페이지 문제 풀이





6주차

14장

입출력 스트림 요약 정리 포스팅

632쪽 2번 문제 풀이




6주간의 혼공자바(혼자공부하는자바) 학습단을 마무리 하게 되었어요.

책은 한번 다 보기는 했지만, 아직 부족한 부분이 많은거 같아서, 

계속 다른 책들도 참고해 봐야 할거 같은데, 앞으로 이 책 이후로 

어떻게 공부해 나가야 하는지에 대한 부분을 좀 추가적으로 알려주시면 

좋을거 같은데, 책에서는 이부분이 좀 추가되었으면 좋을거 같아요.





입출력 스트림 : 자바에서 데이터 스트림(Stream)을 통해 입출력됩니다. 프로그램이 출발지냐 또는 도착지냐에 따라서 사용하는 스트림의 종류가 결정됩니다.







바이트 입력 스트림(InputStream)바이트 기반 입력 스트림의 최상위 클래스로 추상 클래스입니다. 모든 바이트 기반 입력 스트림은 InputStream 클래스를 상속받아서 만들어집니다.



InputStream


FileInputStream  BufferedInputStream  DataInputStream





바이트 출력 스트림(OutputStream)바이트 기반 출력 스트림의 최상위 클래스로 추상 클래스입니다. 모든 바이트 기반 출력 스트림 클래스는 OutputStream 클래스를 상속받아서 만들어 집니다.



OutputStream

FileOutputStream  PrintStream  BufferedOutputStream  DataOutputStream





문자 입력 스트림(Reader) : 문자 기반 입력 스트림의 최상위 클래스로 추상 클래스입니다. 모든 문자 기반 입력 스트림은 Reader 클래스를 상속받아서 만들어집니다.



Reader

FileReader  BufferedReader  InputStreamFileReader




문자 출력 스트림(Writer) : 문자 기반 출력 스트림의 최상위 클래스로 추상 클래스입니다. 모든 문자 기반 출력 스트림 클래스는 Writer 클래스를 상속받아서 만들어집니다.



Writer

FileWriter  BufferedWriter  PrintWriter  OutputStreamWriter







보조 스트림 : 다른 스트림과 연결이 되어 여러 가지 편리한 기능을 제공해주는 스트림을 말합니다. 보조 스트림은 자체적으로 입출력을 수행할 수 없기 때문에 입출력 소스와 바로 연결되는 InputStream, OutputStream, Reader, Writer 등에 연결해서 입출력을 수행합니다.







문자 변환 보조 스트림 : 소스 스트림이 바이트 기반 스트림(InputStream, OutputStream, FileInputStream, FileOutputStream)이면서 입출력 데이터가 문자라면 Reader와 Writer로 변환해서 사용하는 것을 고려할 수 있습니다.


Writer writer = new OutputStreamWriter(바이트 기반 출력 스트림);




성능향상 보조 스트림 : 기본적으로 출력 스트림은 내부에 작은 버퍼를 자기고 있습니다. 하지만 이것만으로 불충분합니다. 보조 스트림 중에서는 메모리 버퍼를 추가로 제공하여 프로그램의 실행 성능을 향상시키는 것들이 있습니다.

BufferedInputStream, BufferedOutputStrea, BufferedReader, BufferedWriter 등이 있습니다.







System.in : InputStream 타입의 필드 입니다. 

주로 InputStreamReader 보조 스트림과 BufferedReader 보조 스트림을 연결해서 사용하거나, Scanner를 이용해서 입력된 문자열을 읽습니다.


System.out : PrintStream 타입의 필드입니다. PrinterStream이 제공하는 print(), println(), printf()와 같은 메소드를 이용해서 모니터로 출력할 수 있습니다.


Scanner : Scanner는 문자 파일이나, 바이트 기반 입출력 스트림에서 라인 단위 문자열을 쉽게 읽도록 하기 위해 java.util 패키지에서 제공하는 클래스입니다.


File : java.io 패키지에서 제공하는 File 클래스는 파일 및 폴더(디렉토리) 정보를 제공해주는 역할을 합니다.






추가 미션 : 632페이지 문제 풀이






package sec02.verify.exam02;

import java.io.BufferedReader;
import java.io.FileReader;

public class AddLineNumberExample {

	public static void main(String[] args) throws Exception {
		// TODO Auto-generated method stub
		
		String filePath = "src/sec02/verify/exam02/AddLineNumberexample.java";
		
		FileReader fr = new FileReader(filePath);
		BufferedReader br = new BufferedReader(fr);
		
		int rowNumber = 0;
		String rowData;
		while( (rowData=br.readLine()) != null ) {
			System.out.println(++rowNumber + ": " + rowData);
		}
		
		br.close();
	}
}



반응형

+ Recent posts