0
System.in을 다시 설정하여 스캐너에서 입력을 기다리는 새 스트림을 가질 수 있습니까? 이 프로그램은 한 번 실행하면System.in 및 스트림에 대한 질문
이boolean run = true;
String commandLine = "";
Scanner keyboard;
Tokenizer arguments;
RecursiveDescentParser parse;
while (run){
// Command prompt
System.out.print(" ==>\t");
keyboard = new Scanner(System.in);
while (keyboard.hasNextLine()) {
commandLine += " " + keyboard.nextLine();
}
keyboard.close();
keyboard = null;
System.setIn (new FileInputStream (FileDescriptor.in) ) ;
System.setIn(System.in);
keyboard = new Scanner(System.in);
arguments = new Tokenizer(commandLine);
commandLine = "";
parse = new RecursiveDescentParser(arguments, false);
run = parse.parseStartSymbol();
}
}
, hasNextLine은() 나는이 문제를 해결 어떻게 질문을하라는 메시지가 무기한 false를 반환합니다 : 여기 내 코드는? 스트림을 어떻게 든 재설정 할 수 있습니까? 도와 줘서 고마워.
내 코드의 나머지 부분을 입력 스트림으로 사용하여 작업의 의미를 조금 더 자세하게 설명해 주실 수 있습니까? – user633658
@ user633658 : 글쎄, System.in의 특별한 점은 무엇입니까? 재설정이 필요하다면 다른 곳에서 사용하고있는 것입니다. 이 코드는 System.in을 사용한다는 것을 * 알아야합니까? System.in을 생성자에 대한 인수로 전달할 수 없습니까? –
문제는 코드 에서처럼 콘솔에서 데이터를 읽을 수 있거나 scanner를 사용하여 한 번만 리디렉션 할 수 있으며 system.in 문제 때문에 hasNextLine()은 무한대로 false를 반환합니다. – user633658