我嘗試發送字符串我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