Presentation is loading. Please wait.

Presentation is loading. Please wait.

캡스톤 프로젝트(자바) 입출력.

Similar presentations


Presentation on theme: "캡스톤 프로젝트(자바) 입출력."— Presentation transcript:

1 캡스톤 프로젝트(자바) 입출력

2 학습목표 자바 시스템에서의 입출력 개요를 학습한다. 파일, 디렉터리와 연관된 클래스를 학습한다.
문자 스트림과 바이트 스트림 개요에 관해 학습한다. 문자 스트림 관련 클래스에 관해 학습한다. 문자 스트림을 통하여 파일에 입출력하는 방법을 학습한다. 바이트 스트림 관련 클래스에 관해 학습한다. 바이트 스트림을 통하여 파일에 입출력하는 방법과 객체를 입출력하는 방법에 관해 학습한다.

3 입출력 기능 스트림 프로그램에서 사용된 데이터를 영구적으로 저장하여 후에 다른 프로그램에서 사용하게 하기 위해 필요한 기능
1 java.io 패키지 개요 입출력 기능 프로그램에서 사용된 데이터를 영구적으로 저장하여 후에 다른 프로그램에서 사용하게 하기 위해 필요한 기능 프로그램에서 생성된 데이터를 파일 형태로 컴퓨터의 하드디스크나 보조 기억장치에 저장한 다음 다른 프로그램에서 이 데이터를 읽어 사용하는 기능 스트림 순서가 있는 일련의 데이터를 의미하는 추상적인 개념

4 1 java.io 패키지 개요 스트림을 통한 입출력의 예 395 page

5 1 java.io 패키지 개요 java.io 패키지의 클래스 계층 구조 16비트 문자 or 문자열 396 page

6 File 클래스 File 클래스의 생성자 형식
2 파일과 디렉터리 File 클래스 자바는 입출력을 위해 필요한 파일과 디렉터리를 다루기 위해 File 클래스를 제공 File 클래스의 생성자 File(String directoryPath) File(String directoryPath, String filename) File(File dirObj, String filename) 형식 File f1 = new File("/"); File f2 = new File("/", "autoexec.bat"); File f3 = new File(f1, "autoexec.bat"); 파일의 경로만 가진 객체 경로명과 파일 이름을 가진 객체 경로명을 가진 File 객체와 파일 이름을 가진 객체

7 File 클래스의 주요 메소드 메소드 설명 Boolean canRead()
2 파일과 디렉터리 File 클래스의 주요 메소드 메소드 설명 Boolean canRead() 파일이 읽기 가능하면 true, 아니면 false를 반환 boolean canWrite() 파일이 쓰기 가능하면 true, 아니면 false를 반환 boolean delete() 파일을 삭제하고 true를 반환, 파일을 삭제할 수 없으면 false를 반환 boolean equals(Object obj) 현재의 객체와 obj로 지정된 객체가 같은 파일을 가지고 있 으면 true, 아니면 false를 반환 String getAbsolutePath() 파일에 대한 절대 경로를 반환 String getCanonicalPath() 파일에 대한 정규 경로를 반환 String getParent() 부모 디렉터리 이름을 반환 String getName() 파일의 이름을 반환 String getPath() 파일의 경로를 반환 boolean isAbsolute() 경로가 절대 경로이면 true, 아니면 false를 반환 boolean isDirectory() 현재의 객체가 디렉터리이면 true, 아니면 false를 반환

8 File 클래스의 주요 메소드 메소드 설명 boolean isFile()
2 파일과 디렉터리 File 클래스의 주요 메소드 메소드 설명 boolean isFile() 현재의 객체가 파일이면 true, 아니면 false를 반환 long lastModified() 1970년 1월 1일(GMT)부터 파일이 마지막으로 수정된 날짜까지의 시간을 밀리초로 반환 long length() 파일의 바이트 수를 반환 String[] list() 지정된 디렉터리에 있는 파일과 디렉터리를 문자열 배열로 반환 boolean mkdir() 디렉터리를 생성. 경로로 지정된 모든 부모 디렉터리가 존재하여야 한다. 지정한 디렉터리가 생성되면 true를 반환하고, 아니면 false를 반환 boolean mkdirs() 디렉터리를 생성. 경로로 지정된 디렉터리가 존재하지 않으면 생성한 다음 지정한 디렉터리를 생성. 디렉터리가 생성되면 true를 아니면 false를 반환 boolean renameTo(File newName) 파일이나 디렉터리의 이름을  newName으로 변경한 다음 true를 반환. 이름을 변경하지 못하면 false를 반환

9 3 문자(Chraracter) 스트림과 바이트(Byte) 스트림
문자 스트림 16비트 문자나 문자열들을 읽고 쓰기 위한 스트림 입출력을 위해서는 Reader, Writer 클래스와 그 하위 클래스를 이용 바이트 스트림(또는 바이너리 스트림) 8비트의 바이트를 읽고 쓰기 위한 스트림 입출력을 위해서는 InputStream, OutputStream 클래스와 그 하위 클래스를 이용

10 4 문자 스트림 문자 스트림과 연관된 클래스 403 page

11 4-1 Writer 클래스와 Reader 클래스
4 문자 스트림 Writer 클래스와 Reader 클래스 Writer 클래스 문자 스트림의 출력 기능을 제공 Reader 클래스 문자 스트림의 입력 기능을 제공

12 4-1 Writer 클래스와 Reader 클래스
4 문자 스트림 Writer 클래스와 Reader 클래스 Writer 클래스의 주요 메소드 메소드 설명 void close( ) 출력 스트림을 닫는다. void flush( ) 출력 버퍼에 저장된 모든 데이터를 출력 장치로 전송 void write(int c) c의 하위 16비트를 스트림으로 출력 void write(char buffer[ ]) buffer 배열에 있는 문자들을 스트림으로 출력 void write(char buffer[ ], int index, int size) buffer 배열의 index 위치부터 size 크기만큼의 문자들을 스트림으로 출력 void write(String s) 문자열 s를 스트림으로 출력 void write(String s, int index, int size) 문자열의 index 위치부터 size 크기만큼의 문자들을 스트림으로 출력

13 4-1 Writer 클래스와 Reader 클래스
4 문자 스트림 Writer 클래스와 Reader 클래스 Reader 클래스의 주요 메소드 메소드 설명 void close( ) 입력 스트림을 닫는다. int read( ) 다음 문자를 읽어 반환한다. 입력 스트림에 읽을 문자가 없으면 대기한다. 읽은 문자가 파일의 끝이면 -1을 반환 int read(char buffer[ ]) 입력  스트림으로부터  buffer  배열  크기만큼의  문자를  읽어buffer에 저장 int read(char buffer[ ], int offset, int numChars) 입력 스트림으로부터 numChars에 지정한 만큼의 문자를 읽어 buffer의 offset 위치에 저장하고 읽은 문자의 개수를 반환 void mark(int numChars) 입력 스트림의 현재의 위치에 mark 한다. boolean markSupported( ) 현재의 입력 스트림이 mark()와 reset()을 지원하면 true를 반환 boolean ready( ) 다음 read()문을 수행할 수 있으면 true, 입력 스트림이 없어 기다려야 되는 경우에는 false를 반환 void reset( ) 입력 스트림의 입력 시작 부분을 현재의 위치에서 가장 가까운 이전의 mark 위치로 설정 int skip(long numChars) numChars로 지정된 문자 수만큼을 스킵하고 스킵된 문자의 수를 반환

14 4-2 FileWriter 클래스와 FileReader 클래스
4 문자 스트림 4-2 FileWriter 클래스와 FileReader 클래스 FileWriter 클래스 OutputStreamWriter 클래스로부터 상속된 클래스 FileWriter 클래스의 생성자 FileReader 클래스의 생성자 FileWriter(String filepath) throws IOException FileWriter(String filepath, boolean append) throws IOException FileWriter(File fileObj) throws IOException 형식 FileReader(String filepath) FileReader(File fileObj) 형식

15 4-2 FileWriter 클래스와 FileReader 클래스
4 문자 스트림 4-2 FileWriter 클래스와 FileReader 클래스 FileWriter 클래스와 FileReader 클래스의 역할 406 page

16 5 바이트 스트림 바이트 스트림과 연관된 클래스 410 page

17 5-1 OutputStream 클래스와 InputStream 클래스
5 바이트 스트림 5-1 OutputStream 클래스와 InputStream 클래스 OutputStream 클래스 바이트 스트림을 출력하는 메소드들을 제공 InputStream 클래스 입력으로(키보드, 파일 등)부터 데이터를 읽어오는 메소드를 제공

18 5-1 OutputStream 클래스와 InputStream 클래스
5 바이트 스트림 5-1 OutputStream 클래스와 InputStream 클래스 OutputStream 클래스의 주요 메소드 메소드 설명 void close() throws IOException 출력 스트림을 닫는다. void flush() throws IOException 버퍼에 남아 있는 출력 스트림을 모두 출력 void write(int i) throws IOException 정수 i의 하위 8비트를 출력 void write(byte buffer[]) throws IOException buffer의 내용을 출력 void write(byte buffer[], int index, int size)  throws IOException buffer의 index위치부터 size만큼의 바이트를 출력

19 5-1 OutputStream 클래스와 InputStream 클래스
5 바이트 스트림 5-1 OutputStream 클래스와 InputStream 클래스 InputStream 클래스의 주요 메소드 메소드 설명 int available() 현재 읽기 가능한 바이트의 수를 반환 void close() 입력 스트림을 닫는다. int read() 입력 스트림으로부터 한 바이트를 읽어 int 값으로 반환한다. 더 이상 읽을 값이 없을 경우 -1을 반환 int read(byte buffer[]) 입력 스트림으로부터 buffer[] 크기만큼을 읽어 buffer 배열에 저장하고 읽은 바이트 수를 반환 int read(byte buffer[], int offset,  int numBytes) 입력 스트림으로부터 numBytes만큼을 읽어 buffer[]의 offset 위치에 저장하고 읽은 바이트 수를 반환 int skip(long numBytes) numBytes로 지정된 바이트를 스킵(skip)하고 스킵된 바이트 수를 반환 void mark(int numBytes) 입력 스트림의 현재의 위치에 mark 한다. boolean markSupported() 현재의 입력 스트림이 mark()와 reset()을 지원하면 true를 반환 void reset() 입력 스트림의 입력 시작 부분을 현재의 위치에서 가장 가까운 이전의 mark 위치로 설정

20 5-2 FileOutputStream 클래스와 FileInputStream 클래스
5 바이트 스트림 5-2 FileOutputStream 클래스와 FileInputStream 클래스 FileOutputStream 클래스 OutputStream 클래스로부터 상속된 클래스 파일에 바이트 스트림을 출력할 수 있는 기능을 제공 FileOutputStream 클래스 생성자 FileOutputStream(String filepath) throws IOException FileOutputStream(String filepath, boolean append) throws IOException FileOutputStream(File fileObj) throws IOException 형식

21 5-2 FileOutputStream 클래스와 FileInputStream 클래스
5 바이트 스트림 5-2 FileOutputStream 클래스와 FileInputStream 클래스 FileInputStream 클래스 InputStream 클래스로부터 상속된 클래스 파일로부터 입력을 받을 수 있는 기능을 제공 FileInputStream 클래스 생성자 FileInputStream(String filepath) throws FileNotFoundException FileInputStream(File fileObj) throws FileNotFoundException 형식

22 5-2 FileOutputStream 클래스와 FileInputStream 클래스
5 바이트 스트림 5-2 FileOutputStream 클래스와 FileInputStream 클래스 FileOutputStream 클래스와 FileInputStream 클래스의 역할 412 page

23 5-3 DataOutputStream 클래스와 DataInputStream 클래스
5 바이트 스트림 5-3 DataOutputStream 클래스와 DataInputStream 클래스 DataOutputStream 클래스 FilterOutputStream 클래스로부터 상속되었고 DataOutput 인터페이스를 사용하여 구현된 클래스 자바의 기본 자료형 데이터를 바이트 스트림으로 출력하는 기능을 제공 DataOutputStream 클래스 생성자 DataOutputStream(OutputStream outputStream) 형식

24 5-3 DataOutputStream 클래스와 DataInputStream 클래스
5 바이트 스트림 5-3 DataOutputStream 클래스와 DataInputStream 클래스 DataOutputStream 클래스에 구현된 DataOutput 인터페이스의 메소드 메소드 설명 void write(int i) throws IOException i를 스트림으로 출력 void write(byte buffer[]) throws IOException buffer를 스트림으로 출력 void write(byte buffer[], int index, int size) throws IOException buffer의 index 위치부터 size만큼의 바이트를 스트림으로 출력 void writeByte(int i) throws IOException i의 하위 8비트를 스트림으로 출력 void writeBytes(String s) throws IOException 문자열 s를 스트림으로 출력 void writeChar(int I) throws IOException i의 하위 16비트를 스트림으로 출력 void writeChars(String s) throws IOException void writeDouble(double d) throws IOException d를 스트림으로 출력 void writeFloat(float f) throws IOException f를 스트림으로 출력 void writeInt(int I) throws IOException void writeLong(long l) throws IOException l을 스트림으로 출력 void writeShort(short s) throws IOException s를 스트림으로 출력 void writeUTF(String s) throws IOException s를 스트림으로 출력. 유니코드를 UTF-8 엔코딩을 이용하여 변환

25 5-3 DataOutputStream 클래스와 DataInputStream 클래스
5 바이트 스트림 5-3 DataOutputStream 클래스와 DataInputStream 클래스 DataOutputStream 클래스와 DataInputStream 클래스의 역할 417 page

26 5-3 DataOutputStream 클래스와 DataInputStream 클래스
5 바이트 스트림 5-3 DataOutputStream 클래스와 DataInputStream 클래스 DataInputStream 클래스 FilterInputStream 클래스로부터 상속되고 DataInput 인터페이스를 사용하여 구현된 클래스 바이트 스트림으로부터 자바의 기본 자료형 데이터를 읽는 기능을 제공 DataInputStream 클래스 생성자 DataInputStream(InputStream inputStream) 형식

27 5-3 DataOutputStream 클래스와 DataInputStream 클래스
5 바이트 스트림 5-3 DataOutputStream 클래스와 DataInputStream 클래스 DataInputStream 클래스에 구현된 DataInput 인터페이스의 메소드 메소드 설명 boolean  readBoolean(boolean  b)  throws IOException 스트림으로부터 읽은 boolean을 반환 byte readByte( ) throws IOException 스트림으로부터 읽은 byte를 반환 char readChar( ) throws IOException 스트림으로부터 읽은 char를 반환 double readDouble( ) throws IOException 스트림으로부터 읽은 double을 반환 float readFloat( ) throws IOException 스트림으로부터 읽은 float를 반환 long readLong( ) throws IOException 스트림으로부터 읽은 long을 반환 short readShort( ) throws IOException 스트림으로부터 읽은 short를 반환 int readInt( ) throws IOException 스트림으로부터 읽은 int를 반환 void  readFully(byte  buffer[  ])  throws IOException 스트림으로부터 buffer 크기만큼의 바이트를 읽어 buffer 배열에 저장 void readfully(byte buffer[ ] int index, int size) throws IOException 스트림으로부터  size만큼의  바이트를  읽어  buffer의 index 위치에 저장 int readUnsignedByte( ) throws IOException 스트림으로부터 읽은 unsigned byte를 반환 int readUnsignedShort( ) throws IOException 스트림으로부터 읽은 unsigned short를 반환 int skipBytes(int n) 입력 스트림으로부터 n 바이트를 스킵

28 5-4 OjbectOutputStream 클래스와 OjbectInputStream 클래스
5 바이트 스트림 5-4 OjbectOutputStream 클래스와 OjbectInputStream 클래스 직렬화된 데이터 객체를 순차적인 바이트로 표현한 데이터를 의미 영속성 객체가 자신의 상태를 기록해 두어 다음 기회에 또는 다른 환경에서 재생될 수 있는 능력을 의미

29 5-4 OjbectOutputStream 클래스와 OjbectInputStream 클래스
5 바이트 스트림 5-4 OjbectOutputStream 클래스와 OjbectInputStream 클래스 Serializable 인터페이스를 포함하는 클래스 class Box implements Serializable { int w; int h; int d; } 형식 Serializable 인터페이스를 포함

30 5-4 OjbectOutputStream 클래스와 OjbectInputStream 클래스
5 바이트 스트림 5-4 OjbectOutputStream 클래스와 OjbectInputStream 클래스 ObjectOutputStream 클래스 생성자 ObjectOutputStream(OutputStream outputStream) 형식

31 5-4 OjbectOutputStream 클래스와 OjbectInputStream 클래스
5 바이트 스트림 5-4 OjbectOutputStream 클래스와 OjbectInputStream 클래스 ObjectOutputStream 클래스의 주요 메소드 메소드 설명 void close( ) 스트림을 닫는다. void flush( ) 버퍼의 모든 내용을 출력한다. void write(byte[ ] b, int index, int size) 바이트 배열 b의 index 위치부터 size만큼을 출력한다. void write(byte[ ] b) 바이트 배열 b를 출력한다. void write(int ontbyte) int 값의 하위 한 바이트를 출력한다. void writeBoolean(boolean data) boolean 값을 출력한다. void writeByte(int data) 한 바이트를 출력한다. void writeBytes(String str) str 문자열을 연속된 바이트로 출력한다. void writeChar(int data) 한 문자를 출력한다. void writeChars(String str) str 문자열을 연속된 문자로 출력한다. void writeDouble(double data) double 값을 출력한다. void writeFloat(float data) float 값을 출력한다. void writeInt(int data) int 값을 출력한다. void writeLong(long data) long 값을 출력한다. void writeObject(Object obj) 객체를 출력한다. void writeShort(int data) short 값을 출력한다. void writeUTF(String data) 문자열을 UTF 인코딩으로 출력한다.

32 5-4 OjbectOutputStream 클래스와 OjbectInputStream 클래스
5 바이트 스트림 5-4 OjbectOutputStream 클래스와 OjbectInputStream 클래스 ObjectInputStream 클래스 직렬화된 데이터로부터 역 직렬화(Deserialization)를 수행하여 원래의 데이터로 복구하는 기능을 제공하는 클래스 ObjectInputStream 클래스 생성자 ObjectInputStream(InputStream inputStream) 형식

33 5-4 OjbectOutputStream 클래스와 OjbectInputStream 클래스
5 바이트 스트림 5-4 OjbectOutputStream 클래스와 OjbectInputStream 클래스 ObjectOutputStream 클래스의 주요 메소드 메소드 설명 void close() 스트림을 닫는다. int read() 한 바이트를 읽는다. int read(byte[] b, int off, int len) 바이트 배열로 읽어들인다. boolean readBoolean() boolean 값을 읽는다. byte readByte() char readChar() 문자를 읽는다. double readDouble() double 값을 읽는다. float readFloat() float 값을 읽는다. int readInt() int 값을 읽는다. long readLong() long 값을 읽는다. Object readObject() 객체를 읽는다. short readShort() short 값을 읽는다. int readUnsignedByte() 부호 없는 바이트 값을 읽는다. int readUnsignedShort() 부호 없는 short 값을 읽는다. String readUTF() UTF 인코딩을 읽어서 문자열 타입으로 반환

34 학습정리 java.io 패키지 개요 파일과 디렉터리 문자 스트림과 바이트 스트림
자바의 입출력은 하드웨어와 독립적으로 설계되어 어떠한 컴퓨터에서나 일관된 입출력을 수행한다. 자바의 입출력은 스트림(stream)을 사용한다. 스트림은 순서가 있는 일련의 데이터를 의미한다. 파일과 디렉터리 자바는 파일과 디렉터리를 다루기 위해 File 클래스를 제공한다. 다양한 메소드를 이용하여 디렉터리와 파일에 관한 정보를 얻을 수 있다. 문자 스트림과 바이트 스트림 스트림에는 문자 스트림과 바이트 스트림 두 가지 형태가 있다. 문자 스트림은 16비트 문자나 문자열들을 읽고 쓰기 위한 스트림이고, 바이트 스트림(또는 바이너리 스트림)은 8비트의 바이트를 읽고 쓰기 위한 스트림이다.

35 학습정리 문자 스트림 Writer와 Reader 클래스는 문자 스트림 입출력을 대표하는 추상 클래스로서 다양한 메소드를 가지고 있다. 이러한 추상 클래스는 하위 클래스에서 오버라이딩되어 사용된다. FileWriter 클래스와 FileReader 클래스는 파일에 문자 스트림을 입출력하기 위해 사용하는 클래스이다. 바이트 스트림 OutputStream 클래스와 InputStream 클래스는 바이트 스트림 입출력을 대표하는 추상 클래스로서 다양한 메소드를 가지고 있다. 이러한 추상 클래스는 하위 클래스에서 오버라이딩되어 사용된다. FileOutputStream 클래스와 FileInputStream 클래스는 파일에 바이트 스트림을 입출력하기 위해 사용하는 클래스이다. DataOutputStream 클래스와 DataInputStream 클래스는 자바의 기본 자료형 데이터를 바이트로 입출력하기 위해 사용하는 클래스이다. OjbectOutputStream 클래스와 OjbectInputStream 클래스는 객체를 입출력하기 위한 클래스이다. 객체를 입출력하기 위해 자바는 직렬화된 데이터를 사용한다.


Download ppt "캡스톤 프로젝트(자바) 입출력."

Similar presentations


Ads by Google