파파비의 블로그

필터스트림 본문

개발/java

필터스트림

N. Dave 2020. 4. 7. 10:27
반응형

기본스트림을 활용하면 불편한 점들이 많다.

 

먼저 항상 전송되는 data는 byte로 변환해야하는 불편함도 있고,

보안 등의 이슈도 생실 수 있다.

 

그래서 필터스트림이라는 것이 있다.

필터스트림은 직접적인 in/out 기능은 없다

기본 스트림에 필터를 붙이듯 기능이 추가된 스트림이다.

(기본 스트림은 데이터의 송수신만 가능하기 때문이다.)

 

필터스트림을 사용하는 방법은

먼저 기본스트림 객체를 만들고,

필터스트림 객체를 만들 때 기본스트림을 넣으면 된다.

 

필터스트림은 data를 출력할 때, 우리가 굳이 byte로 안바꾸게 할 수도 있고,

보안을 유지하게끔 암호화를 해줄 수 도 있다. 

 

필터스트림의 종류는 다양하며 filterstream을 상속하는 것들을 필터스트림이라고 한다.

 

코드를 통해 확인해보자

//먼저 try - catch로 예외에 대한 처리를 해준다
try
{
   
   //기본스트림 중 하나인 파일 io 스트림을 만들고, 
   // 그 뒤에 필터스트림 중 하나인 dataoutputstream을 만들었다. 인자로 기본스트림 넣기
   String path = "C:\\javatest\\a.txt";
   FileOutputStream fos = new FileOutputStream(path);
   DataOutputStream dos = new DataOutputStream(fos);

   // 필터스트림을 통해 데이터를 넣는데 byte로 변환해줄 필요가 없다.
   //UTF는 string을 넣을 때 사용한다.
   dos.writeUTF("스트링~");
   dos.writeInt(10);

   // flush와 close를 잊지말자
   dos.flush();
   dos.close();
   fos.close();

   // 데이터를 읽어 올 때도 마찬가지로, 기본스트림 > 객체스트림(기본스트림)
   FileInputStream fis = new FileInputStream(path);
   DataInputStream dis = new DataInputStream(fis);

   // 읽어올때 순서에 유의해야 한다.
   String str = dis.readUTF();
   int num = dis.readInt();

   dis.close();
   fis.close();
   
   // 넣은대로 똑같이 나오는 것을 확인할 수 있다
   System.out.println(str);
   System.out.println(num);
   }

catch(IOException e) {
}
반응형

'개발 > java' 카테고리의 다른 글

Comparable vs Comparator in Java // Sort 로직 구현하기  (0) 2020.09.23
스트림의 개념과 file IO stream  (0) 2020.04.07
자바의 try-catch, throws, throw /예외처리  (0) 2020.04.05
Thread 쓰레드  (0) 2020.04.05
인터페이스  (0) 2020.04.05
Comments