IO(입출력) 개념4(Data)

·2022년 11월 6일
0

JAVA객체지향_IO

목록 보기
5/7

DataInput/OutputStream : 자바의 기본자료형을 입출력하는 기능을 갖는 스트림

  • 형변환을 해줄 필요가 없다는 장점이 있음
  • 단, 화면 출력용이 아닌 데이터 전달용으로 만들어진 클래스이기 때문에 화면에는 이상하게 출력됨.

DateOutputStream

int a = 10;
		boolean b =true;
		double c = 3.5;
		char d ='A';
		String f = "안녕하세요";
		try {
			DataOutputStream dos = new DataOutputStream(new FileOutputStream("data.dat"));
			dos.writeInt(a); // int형의 크기로 파일에 저장
			dos.writeBoolean(b); // boolean형의 크기로 파일에 저장
			dos.writeDouble(c); // double형의 크기로 파일에 저장
			dos.writeChar(d); // char형의 크기로 파일에 저장
			dos.writeUTF(f); // utf-8 인코딩방식으로 문자열을 파일에 저장
			dos.close();
			System.out.println("파일로 저장 완료");
		}catch(IOException ie) {
			System.out.println(ie.getMessage());
		}

DataInputStream

  • 저장된 순서대로 읽어와야 함.
    ->자료형마다 저장된 바이트크기가 다른데 순서대로 안불러오고 다른 크기의 바이트를 불러오면 맞지 않아서 꺠질 수 밖에 없음
	try {
			DataInputStream dis = new DataInputStream(new FileInputStream("data.dat"));
			int a = dis.readInt(); // 파일에서 int형의 크기만큼 읽어오기
			boolean b = dis.readBoolean(); // 파일에서 boolean형의 크기만큼 읽어오기
			double c = dis.readDouble(); //파일에서 double형의 크기만큼 읽어오기
			char d =dis.readChar(); //파일에서 char형의 크기만큼 읽어오기
			String f = dis.readUTF();//파일에서 문자열 읽어오기
			dis.close();
            //
			System.out.println("<<파일에서 읽어온 데이터>>");
            //
			System.out.println("a: "+a);
			System.out.println("b: "+b);
			System.out.println("c: "+c);
			System.out.println("d: "+d);
			System.out.println("f: "+f);
		}catch(IOException ie) {
			System.out.println(ie.getMessage());
		}
    
profile
웹개발입문자

0개의 댓글