Ad. 1 ... anner.html
Scanner, jak się można domysleć, ma metodę ogólną hasNext.
Ad. 2 Nie działa bo odczytujesz element, który nie istnieje
Uwagi dodatkowe: Metody w Javie zaczynamy z małej litery. Jeśli używam nowego obiektu klasy, której nie znam to przeglądam jego dostępne metody (w Eclipsie skrót Ctrl + Spacja po kropce).
Ad. 2 Dopowiedzenie
Zauważyłem, że jest jeszcze jedno pytanie w punkcie drugim, odpowiem na nie żeby osoby z podobnym problemem miały rozwiązanie:
Kod: Zaznacz cały
while( (end_of_url = buff.nextLine()) != null ){
System.out.println("a");
}
Taki kod zwróci na końcu wyjątek. Jak to sprawdzić? Korzystając z jakiegoś IDE najeżdżamy na metodę nextLine() - metoda ma dodany javadoc, czyli rodzaj standardowego opisu. W opisie widzimy:
Throws:
NoSuchElementException - if no line was found
IllegalStateException - if this scanner is closed
Widzimy więc, że metoda zwróci wyjątek jeśli spróbujemy odczytać ze skanera linię, która nie istnieje. Jak więc dojść do tego w jaki sposób operować naszym Scanner-em?
Wchodzimy na dokumentację Javy i szukamy naszej klasy(zwykłe Google + "Scanner javadoc" wystarczy). W opisie dostępnych metod widzimy między innymi:
hasNextLine
public boolean hasNextLine()
Returns true if there is another line in the input of this scanner. This method may block while waiting for input. The scanner does not advance past any input.
Returns:
true if and only if this scanner has another line of input
Throws:
IllegalStateException - if this scanner is closed
Widzimy więc, że nasz obiekt scanner-a posiada metodę, która sprawdza czy znajduje się w nim jeszcze jedna linia. Idealny warunek do pętli iterującej linijka po linijce.
W taki sposób można rozwiązać wiele drobnych problemów, warto więc się zaznajomić z tym jak do tego podejść.