Eu tenho esse método simples:
private String read(String filePath) throws IOException {
FileReader fileReader = new FileReader(filePath);
BufferedReader bufferedReader = new BufferedReader(fileReader);
String fileContent = "";
StringBuilder stringBuilder = new StringBuilder(fileContent);
while (bufferedReader.readLine() != null){
System.out.println(bufferedReader.readLine());
stringBuilder.append(bufferedReader.readLine());
}
return fileContent;
}
Como você pode ver na linha 8 Eu incluí impressão para fins debuging Gostaria que este método para retornar Cadeia deste arquivo txt:
1a1
2b 2a
3c 3b 3a
4d 4cr 4bb4 4a
5e 5d 5c 5b 5ax
6f 6ea 6d 6ca 6bb 6a
7g 7f 7ea
por alguma razão saída é assim:
2b 2a
5e 5d 5c 5b 5ax
null
Por que ele lê apenas a segunda e quinta linha? Onde este nulo vem? String retornada no fim parece vazio.
Eu gostaria de entender o que está acontecendo aqui. Valeu :)
Isto é porque você usa todos os terceira linha no while
loop do null
cheque, imprimir cada terceira contagem de linha de dois, e acrescentar a cada três contagem de linha de três, como este:
1 null check
2 print
3 append
4 null check
5 print
6 append
7 null check
8 print
9 append
... and so on
Você deve salvar a linha que você lê em uma String
variável e usá-lo dentro do loop, como segue:
String line;
while ((line = bufferedReader.readLine()) != null){
System.out.println(line);
stringBuilder.append(line);
}
Agora o cabeçalho circuito combina uma atribuição e uma null
seleção e a variável atribuído a partir readLine
representa a última linha lida do arquivo.