Notice
코딩항해기
[과제/JAVA] 멘토시리즈 : 자바 - 19 파일 입출력 응용문제 본문
문제 1. 다음 중 스트림의 관한 설명으로 틀린 것은 무엇일까요?
3번 하나의 스트림으로 입력 출력을 제어할 수 없다. 하나의 스트림은 하나의 기능만 하며 입력과 출력 기능은 구분되어있다.
문제 2. 이미지 파일을 복사하려고 합니다. 다음 중 가장 적합한 스트림은 무엇일까요?
3번 이미지 파일은 byte 처리할 수 있는 스트림으로 진행해야하기 때문이다.
문제 3. 다음은 보조스트림에 대한 설명입니다. 문장이 맞으면 O표, 틀리면 X표하세요.
- 보조 스트림은 다른 보조스트림과 중첩하여 사용할 수 있습니다. O
- 보조 스트림은 자체적으로 입출력을 수행할 수 있습니다. X
- 성능향상 기반 보조 스트림 중에서 바이트 기반스트림에는 BufferedInputStream과 BufferedOutputStream이 있으며, 문자 기반 스트림에는 BufferedReader와 BufferedWriter가 있습니다. O
- 문자 기반 스트림으로 최상위 스트림은 Reader입니다. X (문자 기반 스트림의 최상위 추상클래스)
문제 4. 다음 코드의 빈 칸을 완성해보세요.
첫 번째 빈칸은 while문의 조건으로 값이 있는 동안 반복해야한다.
=> read != -1 (또는) read < 0
두 번째 빈칸은 스트림을 닫는다는 주석이 있으므로, close()가 와야한다.
=> in.close();
문제 5. 사용자가 키보드를 통해 입력한 내용을 파일로 출력하는 예제를 작성해보세요. 사용자가 "END"라고 입력하면 프로그램을 종료합니다.
빈칸 부분은 FileWriter을 객체 선언하는 부분으로 writer = new FileWriter("파일명. txt");가 와야한다.
문제 6. 과일 목록이 들어있는 텍스트 파일이 있습니다. 해당 목록에는 같은 과일이 중복되어 있습니다. 해당 파일을 읽어서 각 과일이 몇 번씩 기록되어 있는지를 출력하는 프로그램을 작성해보세요. 파일의 내용은 임의로 만듭니다.
package iostream;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
public class IOStream {
public static void main(String[] args){
Map<String, Integer> datas = new HashMap<>(); //저장공간 <과일명, 개수>
//파일 읽어오기
BufferedReader reader;
String line;
try {
reader = new BufferedReader(new FileReader("text.txt"));
while((line = reader.readLine())!=null){
boolean flag = false;
for(String key : datas.keySet()){
if(key.equals(line)){//만약 key값과 읽어온 값이 일치한다면
datas.replace(key, datas.get(key)+1);
flag = true;
break;
}
}
//일치하는 값이 없었다면
if(!flag) {
datas.put(line, 1);
}
}
reader.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
for(Entry<String, Integer> data : datas.entrySet()){
System.out.println(data.getKey()+" : "+data.getValue()+"개");
}
}
}
문제 7. 다음 빈칸에 알맞은 단어를 작성해보세요.
- 바이트로 읽어들인 데이터를 문자로 변환해 주는 스트림을 [ 문자 변환 보조 스트림 ]이라고 합니다.
- 자바 시스템 내부에서 사용하는 객체나 데이터를 외부에서 사용할 수 있도록 바이트 단위의 데이터로 변환하는 기술을 [ 직렬화 ](이)라고 하고 바이트로 변환된 데이터를 다시 객체로 변환하는 기술을 [ 역직렬화 ](이)라고 합니다.
'problem solving > 문제 풀기' 카테고리의 다른 글
[과제/DBMS] Do It! : 오라클 - 12 데이터 정의어 실습문제 (0) | 2024.07.31 |
---|---|
[과제/DBMS] Do It! : 오라클 - 10 데이터 조작어 실습문제 (0) | 2024.07.30 |
[과제/JAVA] 멘토시리즈 : 자바 - 18 스레드 응용문제 (0) | 2024.07.28 |
[과제/JAVA] 멘토시리즈 : 자바 - 17 람다식 응용문제 (0) | 2024.07.27 |
[과제/JAVA] 멘토시리즈 : 자바 - 16 컬렉션 프레임워크 응용문제 (0) | 2024.07.26 |