비투즈의 노트르담

파일 입출력(File I / O)

 

먼저 자바 파일 입출력에 들어가기 앞서서 개념을 정확히 들어가야 됩니다.

파일 입출력의 대상의 Consol, 키보드와 모니터, 하드디스크에 저장되어 있는 파일, USB, 프린터 등등이 있는데,

입출력 대상의 형태가 다양하듯이 파일에서의 입출력 형태도 다른데요.

 

자바에서는 두가지가 네트워크 입출력 기본방식을 편안하게 해준다고 생각합니다.

1. 입출력의 기본 방식이 동일합니다.

2. 네트워크 상에서의 데이터를 송수신하기위해서 I / O클래스들의 잘 정의되어 있습니다.

그러므로, 자바네트워크 프로그래밍은 좋다 라고 말할 수 있습니다.

I/O 의 핵심은 스트림(Stream)을 이해하는데 있는데, 

자바에서는 1) 데이터의 흐름을 형성해 주는 통로,

                 2) 파일 또는 각종 I/O장치와의 데이터 이동에 사용되는 인스턴스(객체)를 의미

하는 두가지 용도로 사용됩니다.

입력 스트림(Input Stream) : 프로그램으로 데이터를 읽어들이는 스트림

출력 스트림(Output Stream) : 프로그램으로부터 데이터를 내보내는 스트림

 

ex) run.exe라는 파일에 저장된 데이터를 읽어들이기 위한 스트림을 형성한다고 가정하면

 InputStream in = new FileInputStream("run.exe"); -> 이문장을 통해 간단한 스트림 형성 가능하다

 InputStream in = new GDInputStream("0x2046");

1.  스트림이 형성이 결국은 인스턴스(객체)생성한다.

2.  FileInputStream 클래스는 InputStream클래스를 상속한다

-> 즉, FileInputStream클래스는 파일과 입력스트림 형성을 위한 클래스라고 한다.

라고, 난 정말 자바 XX에서 자세히 잘 나와있습니다.

 

그럼 Input Stream클래스와 Output Class클래스에 대해서 알아보면...

 

Input Stream클래스는 대표적인 클래스로 두가지가 있다고 합니다.

 

여기서 캐치할 점은 byte 데이터 수의 범위는 반환 int범위로 0 ~ 255 라고 나와있고,

스트림끝에 도달하여 데이터가 존재하지 않으면 -1을 반환

I/O에러 발생을 예방하기위해 Exception을 던진다.를 파악할 수 있습니다.

또한 추상화를 왜 했는지 의문을 가져야 합니다.

추상화는 앞에서 설명한대로 데이터를 읽어들이는 기본방식은 대상에 따라서 차이가 날 수밖에 없기 때문에 추상화를 사용했습니다.

시스템을 차단하고 inputStream을 차단하는데 쓰인다 는 것을 알 수 있습니다.

 

 

 

위와 보는 봐와 같이 read랑 거의 비슷한데요.

이 출력스트림은 지정된 바이트를 사용하고 일반적으로  write는  1바이트가 출력 스트림에 기록된다는 점입니다.

그리고 매개변수를 4바이트를 썻으니깐, 위의 영어를 해독하면, 하위 8비트(1바이트)만 전달하고 24비트(3바이트)는 무시된다고 알려줍니다.

 

파일 입출력부분은 이런식으로 분석해나가면서 개념을 쌓아가는게 좋을 듯 싶습니다...

저 개인적인 의견이니, 잘못된 의견 받겠습니다.

- Yang -

'프로그래밍 > 자바' 카테고리의 다른 글

토큰(Token)  (0) 2013.04.10
레이아웃(Layout) & 패널(Panel)  (0) 2013.04.05
이벤트 & 그래픽  (0) 2013.04.05
자바 파일 입출력 3 - 문자스트림  (0) 2013.04.05
자바 파일 입출력 2 - Filter Stream  (0) 2013.04.01