프로그래밍/자바

[자바3일차] 파일클래스/오브젝트/파일관리

RBWSN 2014. 10. 14. 12:52
728x90
뇌를 자극하는 Java 프로그래밍
국내도서
저자 : 김윤명
출판 : 한빛미디어 2006.08.31
상세보기

인용하였습니다.




파일 클래스는 스트림 형태로 읽고 쓴다.
프로그램으로 부터 들어오는 스트림을 입력(input) 출력(output) 그리고 문자(charracter) 와 바이트(byte)스트림으로 구성된다.
대표클래스는 입력클래스는(FileInputStream) 출력클래스는(FileOutputStream)으로 구성되고 (byte)스트림으로 처리된다.
문자클래스의 입력은(FileReader) 출력(FileWriter)로 구성된다.



일단 먼저 문자클래스의 FileReader로 파일을 읽어 보겠다.

일단 이런 클래스는 기본적으로 try/catch문으로 처리해야합니다 IOExeption(일반적인오류)과 FileNotFoindRxception(파일이 없을때) 를 처리한뒤 finally문으로 파일을 닫아 주어야 합니다.  그리고 우선순위도 FileNotFoindRxception(파일이 없을때) 를 검사한뒤 IOExeption(일반적인오류)를 검사하므로 순서도 FileNotFoindRxception(파일이 없을때) -> IOExeption(일반적인오류) 식으로 가야합니다.
또한 FileReader는 int 타입을 리턴하므로 char형으로 캐스팅하여 변수에 집어넣은뒤 출력해야합니다.
일단 파일을 읽는 클래스 이므로 파일을 이클립스의 저장 위치에 먼저 생성하고 실행하여야합니다.


이런식으로 사용이 가능합니다.

파일 쓰기도 비슷합니다. FileWriter로 출력하면 됩니다.




코드를 실행시키면 이클립스 폴더에 생성됩니다. 
파일을 쓰는거는 새로 생성되기때문에 try/catch문에 IOExeption(일반적인오류) 문만 넣으면 됩니다.


만약 char이나 byte 타입이 아닌 프리미티브 타입 데이터를 바이트로 출력하거나 입력 받을려면 DataOutputStream 클래스를 사용하면됩니다.
이 클래스는 혼자서는 데이터를 스는 기능이 없기 때문에 FileOutputStream과 함 께 객체를 생성해서 써야합니다.


객체를 생성하여 인트형으로 output.dat으로 생성해 보았습니다.

이번엔 Int형인 output.dat파일을 읽어 보도록 하겠습니다.
이 클래스도 DataInputStream클래스를 FileInputStream클래스와 함께 사용해야합니다.


이렇게 사용이 가능합니다.

만약 객체를 입출력 하겠다고 한다면 ObjectOutputStream이나 ObjectInputStream을 사용하면됩니다.
객체도 사용 할 입출력이 가능한 클래스가 있고 아닌 클래스가 있습니다.
객체를 스트림으로 만드는것을 직렬화라고 하는데 API에서 java.io.Serializable 을 구현한다면 직렬화 가능 클래스입니다.



이것을 출력하고 싶다면 이제 ObjectInputStream을 사용하면됩니다.



---------- File 클래스(파일관리)
파일 클래스에서는 디렉토리에 대한 정보를 가져올수 있다.
크기/수정일시/이름등등 을 알 수가 있다.

File클래스의 객체를 디렉토리 경로명으로 설정하여 객체를 생성한 뒤 얻고자 하는 정보를 넣으면 된다.
 




728x90