简单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);
}