그래서 내 프로그램에 텍스트 파일을 읽는 데 문제가 있습니다. 코드는 다음과 같습니다.while 루프에서 BufferedReader.readLine() 사용하기
try{
InputStream fis=new FileInputStream(targetsFile);
BufferedReader br=new BufferedReader(new InputStreamReader(fis));
//while(br.readLine()!=null){
for(int i=0;i<100;i++){
String[] words=br.readLine().split(" ");
int targetX=Integer.parseInt(words[0]);
int targetY=Integer.parseInt(words[1]);
int targetW=Integer.parseInt(words[2]);
int targetH=Integer.parseInt(words[3]);
int targetHits=Integer.parseInt(words[4]);
Target a=new Target(targetX, targetY, targetW, targetH, targetHits);
targets.add(a);
}
br.close();
}
catch(Exception e){
System.err.println("Error: Target File Cannot Be Read");
}
내가 읽는 파일은 100 줄의 인수입니다. for 루프를 사용하면 완벽하게 작동합니다. while 문 (for 루프 위에 주석 처리 된 문)을 사용하면 50 초에 중단됩니다. 사용자가 임의의 수의 행을 가진 파일로 프로그램을 실행할 수 있기 때문에 현재 for 루프 구현이 ' 일하지 마라.
왜 while(br.readLine()!=null)
라인이 50에서 멈 춥니 다? 나는 텍스트 파일을 검사했고 그것을 끊을만한 것이 아무것도 없다.
while 루프를 사용할 때 try-catch에서 오류가 발생하지 않으므로 문제가 발생합니다. 누구든지 아이디어가 있습니까?
고마워요! 나는 분명히 이것을 알아야했다. 해결 방법이 무엇인지 알아? – billg118
'((line = br.readLine())! = null)'구문은 Java에서 허용됩니다. 맞습니까? – jpm
@jpm : 예; 이것이 최선의 방법입니다. (비록 내가 처음에'null'을 넣어서 더 명확하게하고 싶다.) – SLaks