Data processing stream class
: 중간에서 데이터를 가공하는 역할- 구분하는 방법
: 생성자에서 다른 스티림을 요구한다면이것은 혼자 입.출력을 할 수 없다는 뜻이기 때문 데이터 가공 클래스라 할 수 있다. API를 확인해보면 확실히 알 수 있을 것이다.
ex>
// Data sink stream class
FileOutputStream out = new FileOutputStream("test1.data");
// Data processing stream class
DataOutputStream out2 = new DataOutputStream(out);
byte b = 0x34;
short s = 0x0a34;
int i = 0x0a0b0c34;
char c = 0xac01;
boolean bn = true; //불가능
out2.write(b);
out2.write(s);
out2.write(i);
out2.write(c);
out2.writeBoolean(bn);//불가능했던것이 Data processing stream class에서는 가능
out2.close();
out.close();
위의 예제에서 보면 DataOutputStream클래스가 출력해야할 값을 byte단위로 알아서 잘라서 파라미터로 받은 FileOutputStream이용해서 출력을 해주고있다.
보는 바와 같이 비트연산 같이 복잡한 연산을 하지 않고도 우리는 손쉽게 문자를 출력할수 있게 된것이다.
* close를 할때는 상식적으로 나중에 연것부터 닫자!!
우리가 방에 들어갈때 두개의 문을 통과 해서 들어갔으면 나갈 때는 안쪽문부터 통과하는 것이 상식 아닌가?
* 아래와 같은 식으로 기능확장하는 것을 Decorator패턴이라고 하는데 나중에 좀더 자세히 알아보자
FileOutputStream out = new FileOutputStream("test1.data");
DataOutputStream out2 = new DataOutputStream(out);
댓글 없음:
댓글 쓰기