我尝试发送字符串我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