📕 멘토씨리즈 자바

Section19 파일 입출력 - 응용문제

harveydent 2023. 5. 25. 11:33
728x90

Section19 파일 입출력

1. 다음 중 스트림에 관한 설명으로 틀린 것은 무엇일까요?

  1. 데이터를 읽어들이는 것을 입력 스트림이라고 합니다.
  2. 데이터를 저장하는 것을 출력 스트림이라고 합니다.
  3. 하나의 스트림으로 입력과 출력 모두 제어할 수 있습니다.
  4. 스트림은 바이트 기반 스트림과 문자 기반 스트림으로 나눌 수 있습니다.

2. 이미지 파일을 복사하려고 합니다. 다음 중 가장 적합한 스트림은 무엇일까요?

  1. FileInputStream, FileWriter
  2. FileReader, FileWriter
  3. FileInputStream, FileOutputStream
  4. FileReader, FileOutputStream

3. 다음은 보조 스트림에 대한 설명입니다. 문장이 맞으면 O표, 틀리면 X표 하세요.

  • 보조 스트림은 다른 보조 스트림과 중첩하여 사용할 수 있습니다. ( )
  • 보조 스트림은 자체적으로 입출력을 수행할 수 있습니다. ( )
  • 성능 향상 기반 보조 스티림 중에서 바이트 기반 스트림에는 BufferedInputStream과 BufferOutputStream이 있으며 문자 기반 스트림에는 BufferedReader와 BufferdWriter가 있습니다. ( )
  • 문자 기반 스트림으로 최상위 스트림은 Reader 입니다. ( )

4. 다음 코드의 빈 칸을 완성해 보세요.

package section19;

public class FileReadExample {
    public static void main(String[] args) {
        FileInputStream in = null;
        try {
            in = new FileInputStream("read.txt");
            int read = 0;

            while ??? {
                read = in .read();
                System.out.println((char) read);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                if (in != null) {
                    ??? // 스트림 담기
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}

5. 사용자가 키보드를 통해 입력한 내용을 파일로 출력하는 예제를 작성해 보세요. 사용자가 "END"라고 입력하면 프로그램을 종료합니다.

package section19;

public class FileWriteExam {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        FileWriter writer = null;

        try {
            String str = "";
            ???
            System.out.println("키보드 입력 : ");
            while (true) {
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                if (writer != null) {
                    writer.close();
                }
                if (scan != null) {
                    scan.close();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}

 

6. 과일의 목록이 들어있는 텍스트 파일이 있습니다. 해당 목록에는 같은 과일이 중복되어 있습니다. 해당 파일을 읽어서 각 과일이 몇 번씩 기록되어 있는지를 출력하는 프로그램을 작성해 보세요. 파일의 내용은 임의로 만듭니다.

ex)

  • fruit.txt
사과

메론
사과
복숭아
수박
사과
수박
...
메론 : 1번
배 : 1번
사과 : 3번
수박 : 2번
...

7. 다음 빈칸에 알맞은 단어를 작성해 보세요.

  • 바이트로 읽어 들인 데이터를 문자로 변환해 주는 스트림을 ㅁㅁㅁ 이라고 합니다.
  • 자바 시스템 내부에서 사용하는 객체나 데이터를 외부에서 사용할 수 있도록 바이트 단위의 데이터로 변환하는 기술을 ㅁㅁㅁ (이)라 하고 바이트로 변환된 데이터를 다시 객체로 변환하는 기술을 ㅁㅁㅁ (이)라고 합니다.
728x90