버퍼링 된 입력 스트림을 파악하는 데 문제가 있습니다. Java로 텍스트 편집기 프로그램을 만들어야합니다. 나는 수업에서 몇 가지 예를 지침으로 가지고 있지만 아직도 그것을 파악할 수 없었다. 필자가 이해할 수 있도록 루프를 읽기 시작한 다음 편집기로 전체 파일을 읽어야합니다. 읽은 문자를 char 형식으로 변환 한 다음 .toString을 사용하여 문자열로 설정했습니다. 이제는 컴파일되지만 프로그램이 정지되므로 무한 루프가 있어야하지만 이유는 확실하지 않습니다.Java 버퍼링 된 입력 스트림이 읽히지 않습니다.
//File open
openItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JFileChooser jfc = new JFileChooser();
jfc.setCurrentDirectory(new File("."));
int result = jfc.showOpenDialog(null);
if (result == JFileChooser.APPROVE_OPTION)
{
File selectedFile = jfc.getSelectedFile();
BufferedInputStream bis = null;
try
{
bis = new BufferedInputStream(new FileInputStream(selectedFile));
char inChar = (char)bis.read();
while(inChar != -1)
{
//inChar = (char)bis.read();
String charToString = Character.toString(inChar);
textArea.setText(charToString);
}
}
catch (Exception e2)
{
e2.printStackTrace();
}
}
}
});
char로 char 파일을 읽고 모든 루프의 필드 내용을 덮어 씁니다. –
@MattClark 루프 내부에서 char을 읽는 라인이 주석 처리되었다는 것을 고려하면, 파일이 전혀 읽히지 않고있다. – BackSlash
이 맞다. 'String string = ""; 그 논리를 적용한 후에 프로그램을 실행하면 여전히 멈추고 ((inChar = (char) bis.read())! = -1) {string + = inChar;} System.out.println (string); ' –