Java 100(DataOutputStream, DataInputStream)

Kang.__.Mingu·2024년 5월 23일
0

Java

목록 보기
102/108

DataOutputStream

  • 원하는 자료형의 값을 전달할 수 있는 출력스트림을 생성하기 위한 클래스

  • DataOutputStream(OutputStream out) 생성자로 DataOutputStream 객체 생성

  • 매개변수로 출력스트림(OutputStream 객체)을 전달받아 원하는 자료형의 값을 전달할 수 있는 출력스트림으로 확장하기 위해 사용

DataInputStream

  • 원하는 자료형의 값을 전달받을 수 있는 입력스트림을 생성하기 위한 클래스

  • DataInputStream(InputStream in) 생성자를 사용하여 DataInputStream 객체 생성

  • 매개변수로 입력스트림(InputStream 객체)을 전달받아 원하는 자료형의 값을 전달받을 수 있는 입력스트림으로 확장하기 위해 사용

문제점

  • 출력스트림에 저장된 자료형의 순서대로 메소드를 호출하여 값을 반환 받아야만 사용 가능하다.
  • 순서대로 메소드를 호출하지 않으면 비정상적인 결과가 발생하거나 EOFException 발생

DataOutputStreamApp

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

public class DataOutputStreamApp {
	public static void main(String[] args) throws IOException {
		//DataOutputStream 클래스 : 원하는 자료형의 값을 전달할 수 있는 출력스트림을 생성하기 위한 클래스
		// => DataOutputStream(OutputStream out) 생성자로 DataOutputStream 객체 생성
		// => 매개변수로 출력스트림(OutputStream 객체)을 전달받아 원하는 자료형의 값을 전달할
		//수 있는 출력스트림으로 확장하기 위해 사용
		DataOutputStream out=new DataOutputStream(new FileOutputStream("c:/data/data.txt"));
		
		//DataOutputStream.writeInt(int v) : 확장된 출력스트림으로 정수값을 전달하기 위한 메소드 
		out.writeInt(100);
		
		//DataOutputStream.writeBoolean(boolean v) : 확장된 출력스트림으로 논리값을 전달하기 위한 메소드 
		out.writeBoolean(true);
		
		//DataOutputStream.writeUTF(String v) : 확장된 출력스트림으로 문자열을 전달하기 위한 메소드 
		out.writeUTF("홍길동");
		
		out.close();
		
		System.out.println("c:\\data\\data.txt 파일을 확인해 보세요.");
	}
}

DataInputStreamApp

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

public class DataInputStreamApp {
    public static void main(String[] args) throws IOException {
        // DataInputStream 클래스: 원하는 자료형의 값을 전달받을 수 있는 입력스트림을 생성하기 위한 값
        // => DataInputStream(InputStream in) 생성자를 사용하여 DataInputStream 객체 생성
        // => 매개변수로 입력스트림(InputStream 객체)을 전달받아 원하는 자료형의 값을 전달받을 수 있는
        // 입력스트림으로 확장하기 위해 사용

        DataInputStream in = new DataInputStream(new FileInputStream("c:/data/data.txt"));

        // 출력스트림에 저장된 자료형의 순서대로 메소드를 호출하여 값을 반환 받아야만 사용 가능
        // => 순서대로 메소드를 호출하지 않으면 비정상적인 결과가 발생하거나 EoFException 발생
        // DataInputStream.readInt(): 확장된 입력스트림을 사용하여 정수값을 제공받아 반환하는 메소드
        int value1 = in.readInt();

        // DataInputStream.readBoolean(): 확장된 입력스트림을 사용하여 논리값을 제공받아 반환하는 메소드
        Boolean value2 = in.readBoolean();

        // DataInputStream.readUTF(): 확장된 입력스트림을 사용하여 문자열을 제공받아 반환하는 메소드
        String value3 = in.readUTF();

        System.out.println("value1 = " + value1);
        System.out.println("value2 = " + value2);
        System.out.println("value3 = " + value3);

        in.close();
    }
}
profile
최선을 다해 꾸준히 노력하는 개발자 망고입니당 :D

0개의 댓글