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

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

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

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

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

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


Ответы (1 шт):

Автор решения: Nowhere Man

Да, разумеется, можно создать экземпляр класса 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"));
→ Ссылка