java.io.DataInputStream 클래스

- 기본 Java 데이터 유형을 플랫폼에 독립적인 방법으로 기본 입력 스트림에서 읽을 수 있다.

- 필터 스트림이기 때문에 다른 입력 스트림을 생성자의 인자로 받아 객체를 생성한다.

- InputStream, FilterInputStream의 하위 클래스

import java.io.DataInputStream;
import java.io.FileInputStream;

public class Ex016_DataInputStream {

	public static void main(String[] args) {
		
		// DataOutputStream으로 저장한 내용은 DataInputStream으로 읽어야 한다.
		// 저장한 자료형 순서대로 읽어 들인다.
		// 더 이상 읽을 데이터가 없으면 IOException이 발생된다.
		try(DataInputStream dis = new DataInputStream(new FileInputStream("text.txt"))) {
			System.out.println(dis.readUTF());
			System.out.println(dis.readByte());
			System.out.println(dis.readChar());
			System.out.println(dis.readInt());
			System.out.println(dis.readInt());
			System.out.println(dis.readUTF());
		} catch (Exception e) {
			e.printStackTrace();
		}

	}

}


java.io.DataOutputStream 클래스

- 기본 Java 데이터 유형을 출력하는 기능을 가진 클래스로 필터 스트림이기 때문에 다른 출력 스트림을 생성자의 인자로 받아 생성한다.

- OutputStream, FilterOutputStream의 하위 클래스

 

import java.io.DataOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class Ex015_DataOutputStream {

	public static void main(String[] args) {
		try(DataOutputStream dos = new DataOutputStream(new FileOutputStream("text.txt"))) {
			dos.writeUTF("서울");
			dos.writeByte(10);
			dos.writeChar('A');
			dos.writeInt(50);
			dos.writeInt(70);
			dos.writeUTF("서울");
			
			System.out.println("파일 저장 완료...");
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

}


필터 스트림 ?

- 필터 스트림은 기존의 스트림을 원하는 기능을 제공하는 새로운 스트림으로 바꾸어 주는 스트림이다.

- 필터 스트림의 최상위 클래스에는 FilterInputStream과 FilterOutputStream클래스가 있다.

 

FilterInputStream과 FilterOutputStream 클래스

- 이 클래스를 인스턴스 한 객체는 매개변수로 입력 받은 다른 스트림과 연결되어있다.

- 실제 데이터 소스에서 스트림을 처리하는 것이 아니라 다른 스트림과 연결하는 용도로 사용된다.

따라서 입/출력 스트림에서 받은 데이터를 다른 데이터로 변환하거나 추가 작업을 하는 클래스이다.

+ Recent posts