Каждый readLine()
читает совершенно новую строку, чтобы проанализировать, что происходит, давайте назовем каждый readLine()
вызов.
while (bufferedReader.readLine() != null) { // Read 1
System.out.println(bufferedReader.readLine()); // Read 2
stringBuilder.append(bufferedReader.readLine()); // Read 3
}
Теперь давайте свяжем каждый readLine()
со строкой, которую он читает:
1a1 // Read 1 while loop condition
2b 2a // Read 2 this is when we print it
3c 3b 3a // Read 3 append to stringBuilder
4d 4cr 4bb4 4a // Read 1 while loop condition
5e 5d 5c 5b 5ax // Read 2 this is when we print it
6f 6ea 6d 6ca 6bb 6a // Read 3 append to stringBuilder
7g 7f 7ea // Read 1 while loop condition
// Read 2 this is when we print it (null)
// Read 3 append to stringBuilder
Как видите, вы потребляете много строк, и вы печатаете только несколько.Другие уже указали отличные решения, чтобы исправить это уже, следовательно, это не в этом ответе.