왜 내 Java 서블릿이 멈추는 지 알 수 있습니까? 컴파일하지만 CPU가 100 %로 이동하므로 어딘가에 무한 루프가 있다고 가정하고 있습니다.?Java에서 파일 무한 루프 읽기
quotes.txt에는 10 줄만 있습니다. scan.nextLine()
첫 번째 루프에서 호출되지 않기 때문에
String line = "";
try {
String filePath = new File("").getAbsolutePath();
filePath += "/quotes.txt";
Scanner scan = new Scanner(filePath);
int lines = 0;
while (scan.hasNextLine()) {
lines++;
}
Random random = new Random();
int randomInt = random.nextInt(lines);
for (int i = 0; i < randomInt; i++) {
line = scan.nextLine();
}
scan.close();
} catch (Exception e){
line = e.getMessage();
}
감사
귀하의 while 루프 검사 읽고 그 다음 줄 –
'(scan.hasNextLine())'동안 - 당신이 루프에서 스캐너에서 읽어 본 적이. 그래서 한 줄이라도 있다면 "영원히"다음 줄을 사용할 수 있습니다. – David
@ A.A. 첫 번째 루프는 라인을 계산하여 두 번째 루프는 실제로 파일에있는 임의의 수의 라인 만 선택합니다. –