Archives
Recent Posts
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Today
Total
관리 메뉴

안드로이드 개발자의 창고

[9일차 Java] DataStream 본문

Computer/Java

[9일차 Java] DataStream

Wise-99 2023. 5. 9. 18:28

 

 

출처 : 안드로이드 앱스쿨 2기 윤재성 강사님 수업 PPT

 

 

 

📖 DataStream이란?

      • 기본 자료형 값을 byte 배열 형태로 변환해주는 역할을 하는 필터 스트림이다.
      • 기본 스트림을 통해 데이터 송수신을 하기 위해서는 바이트 형태의 데이터로 송수신을 하게된다.
      • 개발자가 직접 송수신할 데이터를 바이트화 시키거나 바이트화 되어 있는 데이터를 사용하고자 하는 형태로 변환해야 하는데 이 작업을 해주는 스트림이다.
      • 데이터 송수신 메서드
        • readXXX : read 메서드가 굉장히 많이 존재하는데 각 타입별로 존재하고 있다. 정수형일 경우 readInt를 사용하면 바이트로 넘어온 데이터를 정수형으로 변환하여 되돌려준다.
        • writeXXX : 송신하고자 하는 데이터를 바이트 형태로 변환하여 기본 스트림에게 넘겨준다. 정수형일 경우 writeInt를 사용한다.

📖 예제 코드

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;

public class MainClass {

	public static void main(String[] args) {
		// DataStream
		// 기본 자료형 값을 byte 배열 형태로 변환해주는 역할을 하는 필터 스트림이다.
		// saveData();
		readData();
	}

	public static void saveData() {
		try {
            // 기본 스트림 생성
			FileOutputStream fos = new FileOutputStream("test3.txt");

			// 필터 스트림 생성
			// DataStream 생성
			DataOutputStream dos = new DataOutputStream(fos);

			// 쓴다.
			dos.writeInt(100);
			dos.writeDouble(11.11);
			dos.writeBoolean(true);
			dos.writeUTF("안녕하세요");

			// 닫는다.
			dos.flush();
			dos.close();
			fos.close();

			System.out.println("쓰기 완료");

		} catch (Exception e) {
			e.printStackTrace();
		}

	}

	public static void readData() {
		try {
			// 기본 스트림 생성
			FileInputStream fis = new FileInputStream("test3.txt");

			// DataStream 생성
			DataInputStream dis = new DataInputStream(fis);

			int a1 = dis.readInt();
			double a2 = dis.readDouble();
			boolean a3 = dis.readBoolean();
			String a4 = dis.readUTF();

			// 닫는다
			dis.close();
			fis.close();

			System.out.println(a1);
			System.out.println(a2);
			System.out.println(a3);
			System.out.println(a4);

		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

'Computer > Java' 카테고리의 다른 글

[Java 9일차] ObjectStream  (0) 2023.05.09
[9일차 Java] 2ByteStream  (0) 2023.05.09
[9일차 Java] FileStream  (0) 2023.05.08
[8일차 Java] Collection / List / Map / Set  (0) 2023.05.07
[8일차 Java] Date와 Calendar  (0) 2023.05.07