파일을 입력, 출력을 다루는 클래스가 JAVA에 존재한다.

InputStream으로 파일 스트림을 받을 수 있는데

이를 이용해서
먼저
간단한 파일 복사 프로그램을 작성해본다.



(파일 복사 코드)




(복사된 화면)



위 코드는 파일을 복사하는 프로그램이다.

InputStream과 OutputStream을 이용해 작성해보았다.

InputStream 과 OutputStream는 한바이트씩 읽고 쓴다.
그렇기 때문이 이 코드를 직접 사용하기에는 성능면에서 문제가 있다.

만약 버퍼를 이용하면 성능을 높일 수 있게 된다.


(버퍼를 이용한 코드)



위처럼 1KB 버퍼를 이용해 옮기는 코드 모습이다.

그러면
InputStream을 이용해 정수형 int 자료형에 데이터를  담을 수 있을까?

스트림 데이터를 int 자료형으로 옮겨야하는데
그러기 위해서는
필터 스트림이 필요하다.

필터 스트림이란 스트림을 받아오는 과정에서 원하는 형태로 가공하기 위한 것이다.
말그대로 필터이다.

필터 스트림에는 InputStream이나 OutputStream의 기능은 없다.
필터이기 때문에 같이 사용하여야 한다.



(필터 스트림 적용)




(출력 화면)



위 코드는 필터 스트림을 적용한 코드이다.

그렇다면 이 코드 역시 버퍼를 적용 시킬 수 있지 않을까?



(버퍼를 적용한 코드)



위는 BufferedOutputStream 클래스를 이용해 버퍼를 이용한 코드이다.

OutputStream을 생성하고 그 참조변수를 BufferedOutputStream인자로 넘겨주고
그 인자를 DataOutputStream으로 연결해준다.

이 순서는 중요하다.

그러면 파일에 직접 입력을 해볼 것이다.

파일에 직접 입력하기 위해서는 문자스트림이 필요하다.
문자스트림은 다양한 운영체제에서도 똑같이 적용시키기 위해서
필요하다. 문자데이터를 입력받아 각 운영체제에 맞게 인코딩이 필요하기 때문이다.

- FileReader, FileWriter

클래스만 달라졌지 역할은 위에서 본것과 같다.

메모장에 입력하는 코드를 만들어보겠다.




(파일 입력 코드)






(출력 화면)



메모장에 문자가 입력된 것을 확인할 수 있다.

객체 또한 파일처럼 입력할 수 있다.

클래스 이름은
ObjectOutputStream , ObjectInputStream이다.
파일입력처럼 객체를 저장해 파일의 데이터처럼 꺼내서 사용할 수 있다.



(객체 입력)




(*참조 - 난 정말 JAVA를 공부한 적이 없다구요, 윤성우)




+ Recent posts