Есть ли возможность при создании BufferedReader вместо System.in вписать какие-либо значения?

Рейтинг: 2Ответов: 1Опубликовано: 16.03.2023

Есть ли возможность при использовании

BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));

вместо System.in вписать значения, например, как

Scanner scanner = new Scanner(Source: "1 2 3 4 5").

Мне приходится много раз запускать код для проверки и очень сильно утомляет каждый раз вводить с клавиатуры.

Ответы

▲ 2Принят

Да, разумеется, можно создать экземпляр класса StringReader класс и обернуть его в BufferedReader:

try (BufferedReader br = new BufferedReader(new StringReader("1 2 3 4 5 6"))) {
    // ... используйте буферизированное чтение
}

или передавать Reader как параметр в некоторый метод, в котором уже будет использоваться буферизованное чтение:

public static void readSomething(Reader reader) throws IOException {
    try (BufferedReader br = new BufferedReader(reader)) {
        // ... основной функционал
    }
}

readSomething(new StringReader("aa bb cc dd"));