Я пытаюсь отправить строку в моей InputStream
:Java: отправить строку в поток ввода
String _source = "123";
InputStream in = new ByteArrayInputStream(_source.getBytes("UTF-8"));
tempLab2.readR(in);
String _source2 = "321";
in.read(_source2.getBytes());
_myClass.readR(in);
Когда я создаю новый ByteArrayInputStream
и установить _source
в качестве аргумента, то все работает хорошо. Мой метод readR не дождался \n
или EOF
. Обозначения и цифры 123
.
Пожалуйста, введите R:
R: 123
readR
метод:
public void readR(InputStream inpSteram) {
Scanner tScanner = new Scanner(inpSteram);
System.out.println("Please enter R:");
_R = tScanner.nextDouble();
System.out.println("R: " + _R);
}
Но если я посылаю _source2
с in.read(_source2.getBytes())
так мой Scanner
ждет, и я вижу только
Пожалуйста, введите R:
Любые идеи?
Есть ли способ без создания нового ByteArrayInputStream? – Leo
Нет. Когда вы создаете ByteArrayInputStream, вы не можете его подавать с новыми байтами. Вы можете изменить readR, чтобы принять String и создать входной поток внутри метода. – Wouter