簡單PROGRAMMJava的DataInputStream所使用與System.in
DataInputStream in = new DataInputStream(System.in);
while(true)
System.out.println(in.readUTF());
行爲不有點怪異:它拒絕輸出在輸入的文字...我用端子輸入一些文本,但沒有什麼輸出。它出什麼問題了?
簡單PROGRAMMJava的DataInputStream所使用與System.in
DataInputStream in = new DataInputStream(System.in);
while(true)
System.out.println(in.readUTF());
行爲不有點怪異:它拒絕輸出在輸入的文字...我用端子輸入一些文本,但沒有什麼輸出。它出什麼問題了?
這並不奇怪。 readUTF
需要非常具體的長度前綴格式,如DataOutputStream
所寫。這不是你的終端將提供的。有關更多詳細信息,請參閱DataInput.readUTF
中的文檔。
通常你應該只使用一個Scanner
或創造大約就在InputStreamReader
周圍System.in
和BufferedReader
,並使用BufferedReader.readLine()
。
DataInputStream用於讀取二進制數據。 readUTF需要兩個字節的無符號長度,後跟UTF-8中的字符。 (如果您無法訪問,您可以閱讀它的文檔提示,提示)
我懷疑您打算使用的是掃描儀,它是專爲閱讀文本而設計的。
Scanner in = new Scanner(System.in);
while(in.hasNextLine())
System.out.println(in.nextLine());
你可以嘗試像
String str;
while((str = in.readUTF()) != null) {
System.out.println(str);
}