[[TableOfContents]] == 일시 == 8월 7일 폭파 인터넷 정리 == 참가자 == || 유재범 || 참석 || || 이지수 || 참석 || || 김용준 || 참석 || || 김정민 || 참석 || == 진행 상황 == * I/O === 발표 내용 === * 핵심 : 파일 입출력과 스트림 * 바이트 스트림 & 문자 스트림 '''I/O''' {{{ input과 Output의 약자 -> 입출력 }}} '''스트림(Stream)''' {{{ 1. 데이터를 운반하는데 사용되는 연결통로 2. 스트림은 FIFO(First In First Out)구조 3. 단방향통신만 가능 -> 입력스트림(input stream)과 출력스트림(output stream) 2개의 스트림이 존재 4. 바이트 스트림, 문자 스트림 두개로 나뉨 ※ 다음에 나오는 그림들은 모든 스트림을 정리한 것이 아니므로 다른 스트림이 필요하면 API와 구글님께... }}} '''바이트스트림''' {{{ ┌ FileInputStream ┌- InputStream ┼ FilterInputStream ┬ BufferedInputStream │ │ └ DataInputStream │ └ ObjectInputStream Object┤ │ ┌ FileOutputStream │ │ ┌ BufferedOutputStream └- OutputStream ┼ FilterOutputSteam ┼ DataOutputStream │ └ PrintStream └ ObjectOutputStream }}} * Buffered~ : 입출력의 효율을 높이기 위해 버퍼(바이트배열)를 사용하여 쓴다. * Data~ : byte단위가 아닌, 다른 기본 자료형의 단위로 읽고 쓸수 있게했다. * PrintStream : printf. println, print 메서드를 오버로딩해서 기능을 제공한다.(System.out.printf) * PrintWriter이 다양한 언어의 문자를 처리하기 때문에 가능하면 PrintWriter를 권장한다. '''문자 스트림''' {{{ ┌ BufferedReader ┌- Reader ┼ InputStreamReader - FileReader Object┤ │ ┌ BufferedWriter └- Writer ┼ OutputStreamWriter - FileWriter └ PrintWriter ※ java에서는 C언어와 달리 char형이 2 byte를 기본이기 때문에 문자를 처리하기 힘들다. 그러므로 문자기반 스트림을 사용하자. ※ InputStream -> Reader OutputStream -> Writer }}} * YJB가 값을 입력 받을때 쓰고 있는 BufferedReader or BufferedInputStream보다 Scanner가 편리하고 용의하다.(JDK 1.5부터 추가) '''표준입출력 - System.in, System.out, System.err''' {{{ 1. 표준입출력은 콘솔을 통한 데이터 입력과 콘솔로의 데이터 출력을 의미 2. 자바에는 표준 입출력을 위해 3가지 입출력 스트림(System.in, System.out, System.err)을 제공 3. 어플리케이션 실행과 동시에 사용할 수 있게 자동적으로 생성되므로 코드를 작성하지 않고 사용 try {// 끝내려면 Enter나 ^Z int input = 0; while(input=System.in.read()) != =1) System.out.println("input : "+input+" (char)input : "+(char)input); } catch(IOException e){} 특징 1. 콘솔입력은 버퍼를 가지고 있기 때문에 Backspace키를 이용해 편집이 가능 2. 크기는 버퍼 크기만큼 입력 가능 3. 입력을 계속 기다리는 상태(블러킹 상태)에 머무름 }}} == 다음 진행 == * [김용준] 학우의 File I/O 보충 및 발표(파일 스트림,직렬화) == 과제 == === 유재범 === {{{ }}} === 이지수 === {{{ }}} === 김용준 === {{{ }}} === 김정민 === {{{ }}} == 후기 == ---- [한자공/시즌3]