while(inStream.hasNextLine())
{
...
lineList.add(inStream.nextLine());
}
...
lineList는 ArrayList입니다. 코드는 마지막 줄을 잡아 내지 않는 것을 제외하고는 모든 것을 잘 읽고 있습니다. 텍스트 파일의 마지막 두 행은 다음과 같이 끝 : 나는 믿고있어Java - 스캐너를 사용하여 마지막 줄을 얻으려면 어떻게해야합니까?
"a sentence here..."
<a blank line here. the blank line is the last line>
이 hasNextLine()이 일 후에 다른 라인을 감지하지 않기 때문에 그것을 잡아되지 않습니다?
마지막 줄을 잡는 방법은 무엇입니까? 나는 그것이 EOF 일 때까지 읽은 다음 예외를 잡는 것이 효과가있을 것이라고 생각했지만 그럴 수있는 방법이없는 것 같습니다.
편집 : 더 많은 정보
public void readLines()
{
lineList = new ArrayList();
try
{
inStream = new Scanner(new File(fileName));
}
catch(FileNotFoundException e)
{
System.out.println("Error opening the file. Try again.");
}
if (inStream != null)
{
while(inStream.hasNextLine())
{
++originalLines;
lineList.add(inStream.nextLine());
}
inStream.close();
}
}
전체 방법이있다. 뭐가 잘못 됐니?
편집 : 더 많은 정보
public static void main(String[] args)
{
Scanner inStream = null;
String test = "";
inStream = new Scanner(test);
while(inStream.hasNextLine())
{
System.out.println(inStream.nextLine());
}
}
그것은 빈 문자열을 선택하지 않습니다하지만이 공백 ""
전체 방법을 내 OP에 추가했습니다. 확인해 주시겠습니까? – ShrimpCrackers
방법이 저에게 잘 보입니다. 'wc -l' 또는 16 진수 편집기 등을 사용하여 파일에 실제로 무엇이 들어 있는지 확인하십시오. "오른쪽 화살표 키를 누르면 이동하지 않을 것"이라는 테스트는 쓸모가 없습니다. 실제 파일에 포함 된 것이 아니라 텍스트 편집기의 동작에 의존하기 때문입니다. – polygenelubricants
감사합니다. 내 생각 엔 구분 기호가 아니라 빈 문자열이라는 것입니다. 내 추측이 맞다면 빈 문자열을 어떻게 가져 옵니까? 위의 추가 된 코드를 참조하십시오. – ShrimpCrackers