on
[Java] 8장 연습문제 (입출력 스트림과 파일 입출력)
[Java] 8장 연습문제 (입출력 스트림과 파일 입출력)
728x90
[8장 1번] 스트림에 대한 설명으로 틀린 것은?
1. 입출력이 동시에 되는 스트림은 없다
2. 스트림은 다른 스트림과 연결될 수 없다
3. 스트림은 먼저 들어온 데이터를 먼저 내보내는 방식이다
4. 스트림은 바이트를 다루는 스트림과 문자만 다루는 스트림으로 나누어진다
[8장 2번] 다음 응용에서 어떤 입출력 스트림 클래스를 사용하여야 하는가?
(1) 음악 파일 연주
- 바이트 스트림
(2) ppt 파일 복사
- 바이트 스트림
(3) 영어와 한글이 기록된 사전 읽기
- 문자 스트림
(4) 선수 이름과 점수를 문자열로 저장
- 문자 스트림
[8장 3번] 이미지 파일을 읽으려고 한다. 가장 적합한 클래스는?
1. InputStreamReader
2. File
3. FileReader
4. FileInputStream
[8장 4번] 다음은 파일을 읽기 위해 스트림을 생성하는 코드이다. 이 코드가 실행될 때 발생할 수 있는 예외가 어떤 것이 있는지 설명하고, try-catch 블록으로 감싸는 코드를 작성하라
FileInputStream fin = new FileInputStream("song.mp3")
- 파일의 경로명이 틀린 경우 → FileNotFoundException 예외 발생
try{ FileInputStream fin = new FileInputStream("song.mp3") } catch(FileNotFoundException e){ System.out.println("파일을 찾을 수 없습니다."); } catch(IOException e){ System.out.println("입출력 오류 발생"); }
[8장 5번] 파일의 크기를 알려고 할 때 필요한 클래스는?
1. File
2. FileSize
3. System
4. FileInputStream
[8장 6번] File 클래스의 직접적인 기능이 아닌 것은?
1. 파일 읽고 쓰기
2. 파일 이름 변경
3. 새 디렉터리 만들기
4. 파일 삭제
[8장 7번] 다음 코드에 대해 물음에 답하라
File file = new File("c:\\windows\\system.ini");
(1) file.isFile()의 리턴 값은?
- true
(2) file.getParent()의 리턴 값은?
- c:\\windows
(3) file.getPath()의 리턴 값은?
- c:\\windows\\system.ini
(4) file.getName()의 리턴 값은?
- system.ini
(5) 아래 빈칸을 채워 문제의 코드와 동일한 코드를 구성하라.
File file = new File(___________________, "system.ini");
"c:\\windows"
[8장 8번] 문자 집합에 대한 설명으로 틀린 것은?
1. 문자들의 인코딩 정보로 구성된 문자 인코딩 세트를 뜻한다
2. 텍스트 파일 읽기 시 문자 집합을 알려주지 않으면 제대로 읽지 못하는 경우가 발생한다
3. 바이트 스트림 입출력 시 문자 집합을 고려하여 입출력해야 한다
4. 윈도우에서 작성된 텍스트 파일은 기본적으로 "MS949" 문자 집합으로 인코딩된다
- 3번, 바이트 스트림은 바이너리 데이터로 입출력 하기 때문에 문자 집합은 고려할 필요가 없다
[8장 9번] c:\temp\test.txt 파일을 읽어 화면에 출력하는 코드이다. 빈칸을 완성하라
FileInputStream fin = null; try{ fin = new FileInputStream(________________________); int c; while(true){ c = fin.read(); if(________________________) break; System.out.print((char)c); } ________________________; } catch(________________________){ System.out.println("파일을 찾을 수 없습니다."); } catch(IOException e){ System.out.println("입출력 오류가 발생했습니다."); }
>> 풀이
FileInputStream fin = null; try{ fin = new FileInputStream("c:\\temp\\test.txt"); int c; while(true){ c = fin.read(); // 파일에서 한 바이트 읽기 if(c == -1) break; // 파일 끝까지 읽었음 System.out.print((char)c); } fin.close(); // 파일 입력 스트림 닫기 } catch(FileNotFoundException e){ System.out.println("파일을 찾을 수 없습니다."); } catch(IOException e){ System.out.println("입출력 오류가 발생했습니다."); }
[8장 10번] 다음은 50 바이트 크기의 버퍼를 사용하여 C:\temp\sample.txt를 읽어 화면에 출력하는 소스 코드의 일부이다. 빈칸을 채워라
BufferedOutputStream bout = ________________________; File f = new File(________________________); FileReader fin = new FileReader(f); int c; while(________________________){ ________________________; } fin.close(); bout.close();
>> 풀이
BufferedOutputStream bout = new BufferedOutputStream(System.out, 50); File f = new File("c:\\temp\\sample.txt"); FileReader fin = new FileReader(f); int c; while((c=fin.read()) != -1){ bout.write(c); } fin.close(); bout.close();
728x90
반응형
from http://cs-ssupport.tistory.com/168 by ccl(A) rewrite - 2021-12-17 19:28:08