Java의 정석 제 14 장 입출력(I/O) Java 정석 남궁성 강의

Slides:



Advertisements
Similar presentations
3. 메소드와 변수 SCJP 자격증 프로젝트 발표자 : 최선웅. 1. 메 소 드 개 념 2. 메 소 드 양 식 3. 메 소 드 변 수 4. 메 소 드 예 제 5. 참 고 문 헌 / 자 료 목 차.
Advertisements

자바네트워크 제2주 바이트 입출력 스트림, 필터 입출력 스트림 컴퓨터시뮬레이션학과 2014년 봄학기 담당교수 : 이형원
캡스톤 프로젝트(자바) 입출력.
입출력 I/O 유진석.
네트워크 프로그래밍 및 실습.
명품 JAVA Programming.
자바 5.0 프로그래밍.
Power Java 제3장 이클립스 사용하기.
인공지능실험실 석사 2학기 이희재 TCP/IP Socket Programming… 제 11장 프로세스간 통신 인공지능실험실 석사 2학기 이희재
5강. Servlet 본격적으로 살펴보기-I 프로젝트 만들기 doGet() doPost()
최윤정 Java 프로그래밍 클래스 상속 최윤정
제 9 장 구조체와 공용체.
파일 입출력에 사용되는 자바 클래스들 JDK 라이브러리의 파일을 다루는 클래스들 파일의 내용을 읽고 쓰는 클래스들
데이터 파일 C 데이터 파일과 스트림(Stream) 텍스트 파일 처리
14.3 문자(character) 스트림과 바이트(byte) 스트림
Chapter 14. 입출력 스트림.
제15장 파일 입출력 문자열을 출력하는 여러가지 방법 (15-2쪽) 문자열만 처리하는 입출력 함수
JAVA ADVANCED File IO IT 아카데미.
18장. IO기반 입출력 및 네트워킹.
양방향 파이프의 활용 양방향 통신 파이프는 기본적으로 단방향이므로 양방향 통신을 위해서는 파이프를 2개 생성한다.
Java의 정석 제 9 장 java.lang 패키지 Java 정석 남궁성 강의
Visual Basic .NET 처음 사용하기.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
자바 5.0 프로그래밍.
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
메시지 큐[5] – test1.c 메시지 제어: msgctl(2) #include <sys/msg.h>
Java의 정석 제 15 장 네트워킹(Networking) Java 정석 남궁성 강의
명품 JAVA Essential.
TCP/IP Socket Programming…
자바 5.0 프로그래밍.
속성과 리스너 초기화 파라미터 외 파라미터에 대해 이해한다. 리스너를 생성해보고 사용에 대해 이해한다.
13. 연산자 오버로딩.
입출력 CHAPTER 12 Section 1 java.io 패키지 개요 Section 2 파일과 디렉터리
I/O&socket통신 POWERPOINT & GROUP STUDY 한재희 김상훈 최기람 황인준 이어진.
7장 인터페이스와 추상 클래스.
JA A V W. 03.
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
27장. 모듈화 프로그래밍.
3장 상수 변수 기본 자료형 키워드와 식별자 상수와 변수 기본 자료형 형변환 자료형의 재정의.
29강 JAVA 스레드 - 스레드란? - 멀티스레드 문법 - synchronized Lecturer Kim Myoung-Ho
Java의 정석 제 5 장 배 열 Java 정석 남궁성 강의 의
유승석 FILE I/O File Input/Output 유승석 SD50 – C# & .NET Platform.
영상처리 실습 인공지능연구실.
24장. 파일 입출력.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
USN(Ubiquitous Sensor Network)
2장. 변수와 타입.
5강. 배열 배열이란? 배열의 문법 변수와 같이 이해하는 배열의 메모리 구조의 이해 레퍼런스의 이해 다차원 배열
자바로 만든 채팅 프로그램 임경진 조주경 지도교수님 : 이광세 교수님.
9강. 클래스 실전 학사 관리 프로그램 만들기 프로그래밍이란 결국 데이터를 효율적으로 관리하기 위한 공구
CHAP 21. 전화, SMS, 주소록.
객체기반 SW설계 팀활동지 4.
자료관리 : 현 화면에서 인쇄할 자료를 입력하여 발행하는 화면 입니다.
소리 편집 안 재 형.
4장. 데이터 표현 방식의 이해. 4장. 데이터 표현 방식의 이해 4-1 컴퓨터의 데이터 표현 진법에 대한 이해 n 진수 표현 방식 : n개의 문자를 이용해서 데이터를 표현 그림 4-1.
안녕하세요!.
클래스 : 기능 CHAPTER 7 Section 1 생성자(Constructor)
Homework #12 (1/2) 프로그램을 작성하고, 프로그램과 실행 결과를 프린트하여 제출한다.
01. 분산 파일 시스템의 개요 네트워크에 분산된 파일을 사용자가 쉽게 접근하고 관리할 수 있게 해준다.
TVM ver 최종보고서
MIDP 네트워크 프로그래밍 ps lab 김윤경.
구조체(struct)와 공용체(union)
Chapter 12 파일 입출력.
JSP Programming with a Workbook
Java의 정석 제 8 장 예외처리 (Exception handling) Java 정석 남궁성 강의
개정판 누구나 즐기는 C언어 콘서트 제13장 동적 메모리 출처: pixabay.
유승석 FILE I/O File Input/Output 유승석 SD50 – C# & .NET Platform.
7 생성자 함수.
6 객체.
Presentation transcript:

Java의 정석 제 14 장 입출력(I/O) Java 정석 2010. 1. 17 남궁성 강의 castello@naver.com Chapter 14. 입출력(I/O) http://www.javachobo.com Java의 정석 제 14 장 입출력(I/O) 안녕하십니까? 자바의 정석의 저자 남궁성입니다. 지금부터 제14장 입출력에 대한 강의를 시작하겠습니다. 2010. 1. 17 남궁성 강의 castello@naver.com

Java 1. 입출력(I/O) 1.1 입출력(I/O)과 스트림(stream) 의 정석 Chapter 14. 입출력(I/O) http://www.javachobo.com 1. 입출력(I/O) 1.1 입출력(I/O)과 스트림(stream) 1.2 바이트기반 스트림 – InputStream, OutputStream 1.3 보조스트림 1.4 문자기반 스트림 – Reader, Writer 2. 바이트기반 스트림 2.1 InputStream과 OutputStream 2.2 ByteArrayInputStream과 ByteArrayOutputStream 2.3 FileInputStream과 FileOutputStream 3. 바이트기반 보조스트림 세부목차인데요. 이 강의는 이와 같은 순서로 진행될 것입니다. 3.1 FilterInputStream과 FilterOutputStream 3.2 BufferedInputStream과 BufferedOutputStream 3.3 DataInputStream과 DataOutputStream 3.4 SequenceInputStream 3.5 PrintStream

Java 4. 문자기반 스트림 4.1 Reader와 Writer 4.2 FileReader와 FileWriter 의 정석 Chapter 14. 입출력(I/O) http://www.javachobo.com 4. 문자기반 스트림 4.1 Reader와 Writer 4.2 FileReader와 FileWriter 4.3 PipedReader와 PipedWriter 4.4 StringReader와 StringWriter 5. 문자기반 보조스트림 5.1 BufferedReader와 BufferedWriter 5.2 InputStreamReader와 OutputStreamWriter 6. 표준입출력과 File 6.1 표준입출력 6.2 RandomAccessFile 세부목차인데요. 이 강의는 이와 같은 순서로 진행될 것입니다. 6.3 File 7. 직렬화(serialization) 7.1 직렬화(serialization)란? 7.2 ObjectInputStream, ObjectOutputStream 7.3 직렬화 가능한 클래스 만들기 7.4 직렬화 가능한 클래스의 버전관리 3

Java 의 정석 Chapter 14. 입출력(I/O) http://www.javachobo.com 1. 입출력(I/O)

1.1 입출력(I/O)과 스트림(stream) Java 의 정석 Chapter 14. 입출력(I/O) http://www.javachobo.com 1.1 입출력(I/O)과 스트림(stream) ▶ 입출력(I/O)이란? - 입력(Input)과 출력(Output)을 줄여 부르는 말 - 두 대상 간의 데이터를 주고 받는 것 ▶ 스트림(stream)이란? - 데이터를 운반(입출력)하는데 사용되는 연결통로 - 연속적인 데이터의 흐름을 물(stream)에 비유해서 붙여진 이름 - 하나의 스트림으로 입출력을 동시에 수행할 수 없다.(단방향 통신) - 입출력을 동시에 수행하려면, 2개의 스트림이 필요하다. int ch = in.read(); out.write("world"); Hello 파일(Test.txt) H e l l o 입력스트림 d l r o w 출력스트림 Java어플리케이션 5 5

1.2 바이트기반 스트림 – InputStream, OutputStream Java 의 정석 Chapter 14. 입출력(I/O) http://www.javachobo.com 1.2 바이트기반 스트림 – InputStream, OutputStream - 데이터를 바이트(byte)단위로 주고 받는다. 6 6

Java 1.3 보조스트림 정석 - 스트림의 기능을 향상시키거나 새로운 기능을 추가하기 위해 사용 Chapter 14. 입출력(I/O) http://www.javachobo.com 1.3 보조스트림 - 스트림의 기능을 향상시키거나 새로운 기능을 추가하기 위해 사용 - 독립적으로 입출력을 수행할 수 없다. 7 7

1.4 문자기반 스트림 – Reader, Writer Java 의 정석 Chapter 14. 입출력(I/O) http://www.javachobo.com 1.4 문자기반 스트림 – Reader, Writer - 입출력 단위가 문자(char, 2 byte)인 스트림. 문자기반 스트림의 최고조상 8 8

Java 의 정석 Chapter 14. 입출력(I/O) http://www.javachobo.com 2. 바이트기반 스트림 9

2.1 InputStream과 OutputStream Java 의 정석 Chapter 14. 입출력(I/O) http://www.javachobo.com 2.1 InputStream과 OutputStream ▶ InputStream(바이트기반 입력스트림의 최고 조상)의 메서드 ▶ OutputStream(바이트기반 출력스트림의 최고 조상)의 메서드 10 10

2.2 ByteArrayInputStream과 ByteArrayOutputStream Java 의 정석 Chapter 14. 입출력(I/O) http://www.javachobo.com 2.2 ByteArrayInputStream과 ByteArrayOutputStream - 바이트배열(byte[])에 데이터를 입출력하는 바이트기반 스트림 11 11

2.2 ByteArrayInputStream과 ByteArrayOutputStream Java 의 정석 Chapter 14. 입출력(I/O) http://www.javachobo.com 2.2 ByteArrayInputStream과 ByteArrayOutputStream 12 12

2.3 FileInputStream과 FileOutputStream Java 의 정석 Chapter 14. 입출력(I/O) http://www.javachobo.com 2.3 FileInputStream과 FileOutputStream - 파일(file)에 데이터를 입출력하는 바이트기반 스트림 13 13

3. 바이트기반 보조스트림 Java 정석 의 Chapter 14. 입출력(I/O) 14 http://www.javachobo.com 3. 바이트기반 보조스트림 14

3.1 FilterInputStream과 FilterOutputStream Java 의 정석 Chapter 14. 입출력(I/O) http://www.javachobo.com 3.1 FilterInputStream과 FilterOutputStream - 모든 바이트기반 보조스트림의 최고조상 - 보조스트림은 자체적으로 입출력을 수행할 수 없다. - 상속을 통해 FilterInputStream/FilterOutputStream의 read()와 write()를 원하는 기능대로 오버라이딩해야 한다. 15 15

3.2 BufferedInputStream과 BufferedOutputStream Java 의 정석 Chapter 14. 입출력(I/O) http://www.javachobo.com 3.2 BufferedInputStream과 BufferedOutputStream - 입출력 효율을 높이기 위해 버퍼(byte[])를 사용하는 보조스트림 - 보조스트림을 닫으면 기반스트림도 닫힌다. 16 16

3.2 BufferedInputStream과 BufferedOutputStream Java 의 정석 Chapter 14. 입출력(I/O) http://www.javachobo.com 3.2 BufferedInputStream과 BufferedOutputStream 17 17

3.3 DataInputStream과 DataOutputStream Java 의 정석 Chapter 14. 입출력(I/O) http://www.javachobo.com 3.3 DataInputStream과 DataOutputStream - 기본형 단위로 읽고 쓰는 보조스트림 - 각 자료형의 크기가 다르므로 출력할 때와 입력할 때 순서에 주의 18 18

Java 3.4 SequenceInputStream 정석 의 정석 Chapter 14. 입출력(I/O) http://www.javachobo.com 3.4 SequenceInputStream - 여러 입력스트림을 연결해서 하나의 스트림처럼 다룰 수 있게 해준다. 19 19

Java 3.5 PrintStream (1/2) 정석 - 데이터를 다양한 형식의 문자로 출력하는 기능을 제공하는 보조스트림 Chapter 14. 입출력(I/O) http://www.javachobo.com 3.5 PrintStream (1/2) - 데이터를 다양한 형식의 문자로 출력하는 기능을 제공하는 보조스트림 - System.out과 System.err이 PrintStream이다. - PrintStream보다 PrintWriter를 사용할 것을 권장한다. 20 20

Java 3.5 PrintStream (2/2) 정석 의 Chapter 14. 입출력(I/O) 21 21 http://www.javachobo.com 3.5 PrintStream (2/2) 21 21

Java 의 정석 Chapter 14. 입출력(I/O) http://www.javachobo.com 4. 문자기반 스트림 22

Java 4.1 Reader와 Writer 정석 ▶ Reader(문자기반 입력스트림의 최고 조상)의 메서드 Chapter 14. 입출력(I/O) http://www.javachobo.com 4.1 Reader와 Writer ▶ Reader(문자기반 입력스트림의 최고 조상)의 메서드 ▶ Writer(문자기반 출력스트림의 최고 조상)의 메서드 23 23

4.2 FileReader와 FileWriter Java 의 정석 Chapter 14. 입출력(I/O) http://www.javachobo.com 4.2 FileReader와 FileWriter - 문자기반의 파일 입출력. 텍스트 파일의 입출력에 사용한다. 24 24

4.3 PipedReader와 PipedWriter Java 의 정석 Chapter 14. 입출력(I/O) http://www.javachobo.com 4.3 PipedReader와 PipedWriter - 프로세스(쓰레드)간의 통신(데이터를 주고 받음)에 사용한다. 25 25

4.4 StringReader와 StringWriter Java 의 정석 Chapter 14. 입출력(I/O) http://www.javachobo.com 4.4 StringReader와 StringWriter - CharArrayReader, CharArrayWriter처럼 메모리의 입출력에 사용한다. - StringWriter에 출력되는 데이터는 내부의 StringBuffer에 저장된다. 26 26

5. 문자기반 보조스트림 Java 정석 의 Chapter 14. 입출력(I/O) 27 http://www.javachobo.com 5. 문자기반 보조스트림 27

5.1 BufferedReader와 BufferedWriter Java 의 정석 Chapter 14. 입출력(I/O) http://www.javachobo.com 5.1 BufferedReader와 BufferedWriter - 입출력 효율을 높이기 위해 버퍼(char[])를 사용하는 보조스트림 - 라인(line)단위의 입출력이 편리하다. 28 28

5.2 InputStreamReader와 OutputStreamWriter Java 의 정석 Chapter 14. 입출력(I/O) http://www.javachobo.com 5.2 InputStreamReader와 OutputStreamWriter - 바이트기반스트림을 문자기반스트림처럼 쓸 수 있게 해준다. - 인코딩(encoding)을 변환하여 입출력할 수 있게 해준다. - 콘솔(console, 화면)로부터 라인단위로 입력받기 - 인코딩 변환하기 29 29

6. 표준입출력과 File Java 정석 의 Chapter 14. 입출력(I/O) 30 http://www.javachobo.com 6. 표준입출력과 File 30

6.1 표준입출력 – System.in, System.out, System.err Java 의 정석 Chapter 14. 입출력(I/O) http://www.javachobo.com 6.1 표준입출력 – System.in, System.out, System.err - 콘솔(console, 화면)을 통한 데이터의 입출력을 ‘표준 입출력’이라 한다. - JVM이 시작되면서 자동적으로 생성되는 스트림이다. 31 31

Java 6.2 RandomAccessFile 정석 - 하나의 스트림으로 파일에 입력과 출력을 모두 수행할 수 있는 스트림 Chapter 14. 입출력(I/O) http://www.javachobo.com 6.2 RandomAccessFile - 하나의 스트림으로 파일에 입력과 출력을 모두 수행할 수 있는 스트림 - 다른 스트림들과 달리 Object의 자손이다. 32 32

Java 6.3 File (1/2) – 생성자와 경로관련 메서드 정석 - 파일과 디렉토리를 다루는데 사용되는 클래스 의 Chapter 14. 입출력(I/O) http://www.javachobo.com 6.3 File (1/2) – 생성자와 경로관련 메서드 - 파일과 디렉토리를 다루는데 사용되는 클래스 33 33

6.3 File (1/2) – 생성자와 경로관련 메서드(예제) Java 의 정석 Chapter 14. 입출력(I/O) http://www.javachobo.com 6.3 File (1/2) – 생성자와 경로관련 메서드(예제) 34 34

Java 6.3 File (2/2) – 파일의 속성, 생성, 삭제, 목록 정석 의 Chapter 14. 입출력(I/O) 35 http://www.javachobo.com 6.3 File (2/2) – 파일의 속성, 생성, 삭제, 목록 35 35

6.3 File (2/2) – 파일의 속성, 생성, 삭제, 목록(예제1) Java 의 정석 Chapter 14. 입출력(I/O) http://www.javachobo.com 6.3 File (2/2) – 파일의 속성, 생성, 삭제, 목록(예제1) 36 36

6.3 File (2/2) – 파일의 속성, 생성, 삭제, 목록(예제2) Java 의 정석 Chapter 14. 입출력(I/O) http://www.javachobo.com 6.3 File (2/2) – 파일의 속성, 생성, 삭제, 목록(예제2) 37 37

6.3 File (2/2) – 파일의 속성, 생성, 삭제, 목록(예제3) Java 의 정석 Chapter 14. 입출력(I/O) http://www.javachobo.com 6.3 File (2/2) – 파일의 속성, 생성, 삭제, 목록(예제3) 38 38

7. 직렬화(Serialization) Java 정석 의 Chapter 14. 입출력(I/O) 39 http://www.javachobo.com 7. 직렬화(Serialization) 39

Java 7.1 직렬화(serialization)란? 정석 의 정석 Chapter 14. 입출력(I/O) http://www.javachobo.com 7.1 직렬화(serialization)란? - 객체를 ‘연속적인 데이터’로 변환하는 것. 반대과정은 ‘역직렬화’라고 한다. - 객체의 인스턴스변수들의 값을 일렬로 나열하는 것 직렬화 - 객체를 저장하기 위해서는 객체를 직렬화해야 한다. - 객체를 저장한다는 것은 객체의 모든 인스턴스변수의 값을 저장하는 것 40 40

7.2 ObjectInputStream, ObjectOutputStream Java 의 정석 Chapter 14. 입출력(I/O) http://www.javachobo.com 7.2 ObjectInputStream, ObjectOutputStream - 객체를 직렬화하여 입출력할 수 있게 해주는 보조스트림 - 객체를 파일에 저장하는 방법 - 파일에 저장된 객체를 다시 읽어오는 방법 41 41

Java 7.3 직렬화 가능한 클래스 만들기(1/2) 정석 의 정석 Chapter 14. 입출력(I/O) http://www.javachobo.com 7.3 직렬화 가능한 클래스 만들기(1/2) - java.io.Serializable을 구현해야만 직렬화가 가능하다. - 제어자 transient가 붙은 인스턴스변수는 직렬화 대상에서 제외된다. - Serializable을 구현하지 않은 클래스의 인스턴스도 직렬화 대상에서 제외 42 42

Java 7.3 직렬화 가능한 클래스 만들기(2/2) 정석 의 정석 Chapter 14. 입출력(I/O) http://www.javachobo.com 7.3 직렬화 가능한 클래스 만들기(2/2) - Serializable을 구현하지 않은 조상의 멤버들은 직렬화 대상에서 제외된다. - readObject()와 writeObject()를 오버라이딩하면 직렬화를 마음대로… 43 43

Java 7.4 직렬화 가능한 클래스의 버전관리 정석 Chapter 14. 입출력(I/O) http://www.javachobo.com 7.4 직렬화 가능한 클래스의 버전관리 - 직렬화했을 때와 역직렬화했을 때의 클래스가 같은지 확인할 필요가 있다. - 직렬화할 때, 클래스의 버전(serialVersionUID)을 자동계산해서 저장한다. - 클래스의 버전을 수동으로 관리하려면, 클래스 내에 정의해야 한다. - serialver.exe는 클래스의 serialVersionUID를 자동생성해준다. 44 44

감사합니다. http://www.javachobo.com Java 정석 의 정석 Chapter 14. 입출력(I/O) http://www.javachobo.com 감사합니다. 더 많은 동영상강좌를 아래의 사이트에서 구하실 수 있습니다. http://www.javachobo.com 이것으로 제 14 장 입출력에 대한 강의를 모두 마치겠습니다. 감사합니다. 이 동영상강좌는 비상업적 용도일 경우에 한해서 저자의 허가없이 배포하실 수 있습니다. 그러나 일부 무단전제 및 변경은 금지합니다. 관련문의 : 남궁성 castello@naver.com