![](/img/trans.png)
[英]problem of the class Scanner in java when Input an integer and multiline string
[英]Problem with Scanner class in java
我使用FileOutputStream
class 在文件中写入了一些二进制数据。 现在我想用Scanner
class 阅读它,但它不能。 是否可以使用扫描仪 class 读取二进制文件? 如果是,那么如何?
编辑:
I solve it by in.nextline();
要读取二进制文件,您可以将 DataInputStream 或 ByteBuffer 与 NIO 一起使用。
现在我想用扫描仪 class 阅读它,但它不能。
这是一个正确的观察。 Scanner 不会读取二进制数据,它不是为此目的而设计的。 扫描仪希望获得一个实现Readable接口的 object,其合同规定只能返回字符。 它可以接受 InputStream, 但正如 API 所述:来自 stream 的字节使用底层平台的默认字符集转换为字符。
是否可以使用扫描仪 class 读取二进制文件? 如果是,那么如何?
按照前面的解释,这是不可能的,除非您以某种方式编写它们,以便上述转换字节的过程返回字符。 如果您需要从 stream 访问二进制数据,则需要避免使用Readers和 Readable 对象。 您需要处理原始InputStreams或FilterInputStreams ,这将返回字节 arrays 或合适的对象。 在您的特定情况下,您将需要一个FileInputStream 。
提示:
您是否阅读过 API 文档?
一个简单的文本扫描器,可以使用正则表达式解析原始类型和字符串。
http://download.oracle.com/javase/1,5.0/docs/api/java/util/Scanner.html
这可能会帮助您:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.