IT 면접 족보40

권단비·2023년 2월 23일
0

IT

목록 보기
84/139

1. 아래와 같이 파일 복사되도록 프로그램을 짜시오

대상 파일: a.pptx
사본 이름: d.pptx

▼정답

package IOStream;
import java.io.*;
import java.util.Scanner;
public class Test1 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.print("대상 파일: ");
		String src = sc.nextLine();
		System.out.print("사본 이름: ");
		String dst = sc.nextLine();

		try (OutputStream out = new FileOutputStream(dst); InputStream in = new FileInputStream(src)) {
			int data;
			while (true) {
				data = in.read();
				if (data == -1)
					break;
				out.write(data);
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

2. 보조스트림에 대하여 설명하시오.

▼정답

보조 스트림 = 필터 스트림
스트림의 기능을 향상시키거나 새로운 기능을 추가할 수 있는 스트림.
보완하는 용도이기 때문에 실제 데이터를 주고 받지 않고, 데이터를 입출력할 수 있는 기능은 없다.

DataOutputStream > BufferedOutputStream > FileOutputStream의 순서로 사용한다.

바이트 기반 보조 스트림

입력스트림출력스트림설명
FilterInputStreamFilterOutputStream필터를 이용한 입출력 처리
BufferedInputStreamBufferedOutputStream버퍼를 이용한 입출력 성능향상
DataInputStreamDataOutputStreamint, float과 같은 기본형 단위로 데이터를 처리하는 기능
ObjectInputStreamObjectOutputStream데이터를 객체 단위로 읽고 쓰는데 사용. 주로 파일일을 이용하며 객체 직렬화와 관련된다.

문자 기반 보조 스트림

입력스트림출력스트림설명
InputStreamReaderOutputStreamWriter바이트 기반 스트림을 문자 기반 스트림으로 연결
BufferedReaderBufferedWriter버퍼를 이용한 입출력 효율 향상

BufferedReader : readLine()을 사용하면 데이터를 라인 단위로 읽을 수 있다.
BufferedWriter : newLine()을 사용하면 줄바꿈을 할 수 있다.

3. 문자 스트림과 바이트 스트림의 차이에 대하여 설명하시오.

▼정답

문자를 입출력할 때에는 약간의 데이터 수정이 필요!
그래서 자바에서는 '문자 스트림' 이라는 것을 별도로 지원(이 스트림은 데이터 수정을 자동화 해준다.)

・바이트 스트림 :
①CPU가 알아듣는 파일 (.exe)
②Byte 단위로 읽고 출력하는 스트림
→ OutputStream(=Writer out)
・문자 스트림 : 
①개발자가 알아듣는 파일 (.java / .txt)
②문자 단위로 읽고 출력하는 스트림
→ Writer(=OutputStream out)

0개의 댓글