我还是一位新手java程序员。我正在学习Java IO,并注意到在本书以及在线教程中,他们都没有谈论扫描仪类。他们总是提到,创建输入/输出流读取器对象并将其用于读取或写入。了解Java IO
我对扫描仪类非常熟悉,阅读后我开始认为扫描仪不是读取java中控制台输入/文件的正确方法。
请澄清我的疑问,如果你能指点我一个容易理解的教程,它会很好。我已经查阅了oracle文档和其他热门网站。阅读赫伯特schildt的书&可怕的头第一个Java书(barf..barf)
我还是一位新手java程序员。我正在学习Java IO,并注意到在本书以及在线教程中,他们都没有谈论扫描仪类。他们总是提到,创建输入/输出流读取器对象并将其用于读取或写入。了解Java IO
我对扫描仪类非常熟悉,阅读后我开始认为扫描仪不是读取java中控制台输入/文件的正确方法。
请澄清我的疑问,如果你能指点我一个容易理解的教程,它会很好。我已经查阅了oracle文档和其他热门网站。阅读赫伯特schildt的书&可怕的头第一个Java书(barf..barf)
扫描仪类是一个专门用于读取文本文件的特殊文件读取器。如果您想要读取其他文件类型,扫描仪类不是最佳的。 一个很好的概述可以在这里找到java i/o。总结表格有:
java.io包中包含许多类,您的程序可以用来读写数据。大多数类实现顺序访问流。顺序访问流可以分为两组:读取和写入字节的那些以及读取和写入Unicode字符的那些。每个顺序访问流都有一个特性,例如读取或写入文件,过滤数据作为其读取或写入,或序列化对象。
看完这个之后,你应该看看Apache Commons I/O哪些给你一些方便的I/O实用程序类。
你明白,a)有关Java的很多材料是多年前写的,而且Scanner是相对较新的。 b)在某些情况下扫描仪是正确的工具,但是在所有情况下,您都可以使用原始流作为二进制文件或读取器作为文本。
正如您怀疑Scanner是简单文本文档的正确选择。
你已经评估了你正在阅读的材料并给它上下文(就像它有多大)没有任何教程可以帮助你。 ;)
我的一个宠物恨是StringBuffer。在Java 5.0(2004)中提供并推荐了一种替代方法,即StringBuilder,但现在仍然有人使用它。 :P – 2012-07-29 08:06:56
自2004年以来,Scanner一直存在,这是Java生命周期的一半以上。 – EJP 2016-12-22 23:00:02
@EJP虽然新图书馆需要很长时间才能成为标准的做事方式, – 2016-12-23 09:10:23
如果我没有记错,Scanner最适合读取人类可读形式的输入(例如,我想要System.in中的5个数字由用户输入,然后是一行文本,然后是两行十进制数字)。 (纠正我,如果我错了) – 2012-07-29 08:08:42