Boa tarde a todos, estes dias aqui no trabalho encontrei algo que chamou minha atenção, tenho pouco tempo de experiência em java mas encontrei um problema que talvez alguém com mais experiente possa me auxiliar.
Esta classe não funciona com o código abaixo, porém se eu descomento a linha 7 e comento a linha 8 funciona.
A verificação com o “for” funciona para os dois modos, bom, eu não estou utilizando o método ready da mesma classe, porque ao encapsular o Reader no LineNumberReader eu tenho respostas diferentes, não deveriam seguir o mesmo contrato da SuperClasse.
Desde já agradeço pelas respostas
Marco Antônio Carapina da Silva
Olhe esta classe.
public class Main {
public static void main(final String[] args) {
final String value = "a ab abc";
// final Reader sr = new InputStreamReader(new ByteArrayInputStream(value.getBytes()));
final Reader sr = new StringReader(value);
final LineNumberReader ln = new LineNumberReader(sr);
try {
//for (String line = null; (line = sr.readLine()) != null;) {
while (ln.ready()) {
final String line = ln.readLine();
System.out.println(line);
}
} catch (final IOException e) {
e.printStackTrace();
}
}
}