책 따라서 공부하다가 InputStreamReader 에 관한 코드를 작성하게 됬는데,
책에 나온 대로 하니까 이상한 부분이 있어서 질문 드립니다.
import java.io.*;
public class FileWriterExam {
public static void main(String[] args) {
// TODO 자동 생성된 메소드 스텁
File f;
FileWriter fileWriter;
InputStreamReader inputStreamReader;
int cData = 0;
try{
f = new File("output.dat");
f.createNewFile();
}catch(IOException e){
System.out.println("파일 생성시 예외가 발생하였습니다.");
}
try{
fileWriter = new FileWriter("output.dat");
inputStreamReader = new InputStreamReader(System.in);
while((cData = inputStreamReader.read()) != -1)
fileWriter.write((char)cData);
fileWriter.flush();
}catch(FileNotFoundException e){
System.out.println("파일 출력 스트림 생성에 실패하였습니다.");
}catch(IOException e){
e.printStackTrace();
}
}
}
output.dat 란 파일에다가 키보드로 문자들을 입력받아 출력하는 프로그램인것 같은데,
문제는 저 키보드로 입력받는 부분에서 어떻게해야 입력 스트림의 끝을 표현할 수 있을지가 의문입니다.
계속 콘솔에 문자들은 입력이 되는데 파일에 출력이 안되는 것으로 봐서
저 입력스트림이 끝나지 않고 계속 입력을 받게 되는거 같은데 어떻게 입력스트림을 끝낼 수가 있나요??