12일차 수업 ( 파일읽기,쓰기, 객체직렬화 )
1. 파일읽기
=> 파일읽기시 사용 가능한 클래스
가. FileInputStream
=> 바이너리 데이터 ( 이미지파일, 텍스트파일등 )
나. FileReader
=> 텍스트 데이터
==> File 클래스를 이용해서 읽을 파일을 명시한다.
2. 파일 쓰기
=> 파일쓰기시 사용 가능한 클래스
가. FileOutputStream
=> 바이너리 데이터
나. FileWriter
=> 텍스트 데이터
3. 객체 직렬화 - > 내가 만든 클래스를 유지시키는 방법
개념 : 객체생성한 클래스의 인스턴스 heap 메모리에 저장되는데, 이것은 휘발성이다.
따라서 지속적으로 사용하기 위해서 파일로 저장하거나 네트워크를 통해 전송시킬수가 있는데
아무 클래스나 가능한것이 아니고 반드시 '직렬화객체'만이 가능하다.
이것을 가능하게 하는 작업을 '객체직렬화'라고 한다.
직렬화객체 생성방법
: implements Serializable ( java.io.Serializable ) 을 한 클래스를
'직렬화 객체' 라고 한다.
<예제 이미지 파일 복사>
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileReadWriteTest {
public static void main(String[] args) {
// c:\\Temp\\a.jpg 파일을 읽어서
// c:\\Temp\\b.jpg 로 출력하기
File f = new File("c:\\Temp\\a.jpg");
File f2 = new File("c:\\Temp\\b.jpg");
int size = (int) f.length();
byte[] b = new byte[size]; // 1kbyte
FileInputStream fis = null;
FileOutputStream fos = null;
try {
fis = new FileInputStream(f);
fos = new FileOutputStream(f2);
try {
int n = fis.read(b);
} catch (IOException e) {
e.printStackTrace();
}
try {
fos.write(b);
} catch (IOException e) {
e.printStackTrace();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
try {
if (fis != null)
fis.close();
if (fos != null)
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
====수업 내용======
1. 파일읽기
=> 파일읽기시 사용 가능한 클래스
가. FileInputStream
=> 바이너리 데이터 ( 이미지파일, 텍스트파일등 )
나. FileReader
=> 텍스트 데이터
==> File 클래스를 이용해서 읽을 파일을 명시한다.
2. 파일 쓰기
=> 파일쓰기시 사용 가능한 클래스
가. FileOutputStream
=> 바이너리 데이터
나. FileWriter
=> 텍스트 데이터
3. 객체 직렬화
개념 : 객체생성한 클래스의 인스턴스 heap 메모리에 저장되는데, 이것은 휘발성이다.
따라서 지속적으로 사용하기 위해서 파일로 저장하거나 네트워크를 통해 전송시킬수가 있는데
아무 클래스나 가능한것이 아니고 반드시 '직렬화객체'만이 가능하다.
이것을 가능하게 하는 작업을 '객체직렬화'라고 한다.
직렬화객체 생성방법
: implements Serializable ( java.io.Serializable ) 을 한 클래스를
'직렬화 객체' 라고 한다.
********** 정리
가. 키보드 입력 ( 표준 입력 )
나. 모니터 출력 ( 표준 출력 )
다. 텍스트 파일 읽기
라. 텍스트 파일 쓰기
마. 바이너리 파일 읽기, 쓰기 ( 이미지 복사한것 )
바. 객체 직렬화
4. NIO ( New IO )
: 이후에 나온 기술.
가. Path 클래스
==> 파일 및 디렉토리 경로 관련
나. Files 클래스
==> 파일과 관련 클래스( java.io.File 보다 향상 )
'프로그래밍 > Java' 카테고리의 다른 글
자바 [JAVA] 14~15차 수업 (2차원 배열 ,Hashmap,StringTokenizer,사용자 정의 예외처리 ) (0) | 2017.08.19 |
---|---|
자바 [JAVA]13일차 수업 ( GUI / Frame / Panel ) 하이브리드 웹개발 (0) | 2017.08.19 |
자바 [JAVA] 11일차 수업 ( Java I/O , 표준입출력 ) (0) | 2017.08.19 |
자바 [JAVA]10일차 수업 ( 컬렉션/Hashset/ArrayList/제네릭 ) (0) | 2017.08.19 |
자바 [JAVA] 9일차 수업 ( 예외처리 ) (0) | 2017.08.19 |