티스토리 뷰

카테고리 없음

IO2

키죽 2022. 7. 14. 11:10

자바의 기본 데이터(객체X) 입출력 시

DataInputStream, DataOutputStream 사용

- 자바의 기본데이터 타입 8가지 + 문자열(String) 타입 처리 가능

=> read[기본데이터타입](), write[기본데이터타입]() 메서드 사용

- int형 데이터 출력 : writeInt(), double형 데이터 출력 : readDouble()

주의! String 타입은 String 대신 UTF(readUTF()) 사용

 

자바 기본 데이터를 파일로 출력하기

// 1. FileOutputStream 객체를 생성하여 출력할 파일 위치 및 파일명 지정
FileOutputStream fos = new FileOutputStream("C:\\temp\\data.txt");
// 2. DataOutputStream 객체를 생성해 FileOutputStream 객체를 전달
DataOutputStream dos = new DataOutputStream(fos);
try(DataOutputStream dos = new DataOutputStream
		(new FileOutputStream("C:\\temp\\data.txt"))) {
		
	dos.writeInt(100);
	dos.writeDouble(3.14);
	dos.writeUTF("홍길동");
			
} catch (FileNotFoundException e ) {
	// FileNotFoundException에서 지정한 경로가 존재하지 않을 경우 예외 발생
	e.printStackTrace();
} catch (IOException e) {
	e.printStackTrace();
}

 

파일에 출력된 자바 기본데이터를 읽어와서 화면에 출력

try(DataInputStream dis = new DataInputStream(
			new FileInputStream("C:\\temp\\data.txt"))) {
			
	int num = dis.readInt();
	double dNum = dis.readDouble();
	String str = dis.readUTF();
			
	System.out.println("int형 정수 : " + num);
	System.out.println("double형 실수 : " + dNum);
	System.out.println("문자열 : " + str);
			
} catch (FileNotFoundException e) {
			e.printStackTrace();
} catch (IOException e) {
			e.printStackTrace();
}

data.txt 파일에 있던 내용이 출력된다.

 

 

객체 직렬화(Serealization), 역직렬화 (Deserialization)

자바에서 사용하는 객체에 영속성을 부여하며 파일이나 네트워크 등으로 내보내는 것으로

파일이나 네트워크로부터 데이터를 읽어 객체로 변환하는 것을 역직렬화라고 한다.

 

ObjectInputStream, ObjectOutputStream 클래스 사용

직렬화 대상이 되는 클래스를 정의할 때는 Serializble 인터페이스 상속 필수!

 

키보드로부터 입력받은 데이터를 파일로 출력

1.  키보드로부터 입력받기

1) System.in을 통해 키보드로부터 입력받는 입력스트림을 InputStream 객체로 연결 => byte 단위로 처리

2) InputStream -> InputStreamReader 객체로 변환하여 char 단위로 처리

3) InputStreamReader -> BufferedReader 객체로 변환하여 String 단위로 처리

4) BufferedReader 객체로부터 입력스트림 한줄(readLine()) 단위로 읽어와 처리

 

2. 파일로 출력하기

1) File 객체를 사용해 출력할 파일 위치 및 이름 지정

2) FileWriter 객체 사용해 char 단위로 처리(File 객체 전달)

3) FileWriter -> PrintWriter 객체로 변환하여 출력

 

 

댓글
최근에 올라온 글
«   2025/01   »
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
글 보관함