Второй вызов метода «get» поставщика пуст.JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Второй вызов метода «get» поставщика пуст.

Сообщение Anonymous »

Для приведенного ниже кода, если я сделаю второй вызов поставщику с помощью метода get, счетчик будет равен нулю.

Код: Выделить всё

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.Scanner;
import java.util.function.Supplier;
import java.util.stream.Stream;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class FileOperations {

private Logger logger = LoggerFactory.getLogger(getClass());

public static void main(String[] args) {
FileOperations fOps = new FileOperations();

fOps.usingBufferedReader();

}

public void usingBufferedReader() {
Path path = Path.of("app_log.log");

/**
* Only first operation with stream provide results.
*/
try (BufferedReader reader = Files.newBufferedReader(path);) {
Supplier streamSupplier = () -> reader.lines();

streamSupplier.get().forEach(ln -> {
System.out.println(ln);                 // Prints all lines properly
});

long count = streamSupplier.get().count();
System.out.println("count = " + count);     // Outputs "0"
} catch (IOException e) {
logger.error("IOException: %s%n", e);
}
}
}
Я попробовал считать первым вызовомstreamSupplier.get.

Код: Выделить всё

long count = streamSupplier.get().count();
System.out.println("count = " + count);     // Outputs "0"
В то время он правильно напечатал число 528, но не напечатал строки файла.
Я использую Java 17


Подробнее здесь: https://stackoverflow.com/questions/793 ... r-is-empty
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»