【发布时间】:2015-10-31 08:41:26
【问题描述】:
我想以两种不同的方式从客户的inputstream 中读取信息:
1:在inputstream 之上使用Scanner 来读取字符串。
2:使用InputStream 对象本身读取带有缓冲区的文件。
首先,我想阅读一个文本,它给出了文件的名称和大小,在我的例子中:“file:name:...”、“file:size:...”。
当我有这些信息时,InputStream 应该实际读取文件。问题是,我尝试使用InputStream 对象读取“scanner.hasNextLine()”循环中的文件,但这会导致InputStream.read() 方法返回-1 或EOS。我已将问题缩小到最小,因此您只需回答我这个问题:
为什么 read-method 在这里返回 -1:
if (scanner.hasNextLine()) {
System.out.println(inputstream.read());
}
【问题讨论】:
-
请包含更多代码。 “为什么 ... -1”的简单答案是到达文件末尾,这没有任何帮助。
-
你为什么要通读
Scanner和InputStream? -
我使用
Scanner和InputStream因为Scanner我想读取传入的命令,而InputStream我想读取可以不同的文件 来自文本文件。
标签: java java.util.scanner inputstream