在ACM竞赛中,快速阅读非常重要。在Java中,我们发现发现,使用这样的事情是非常快...
FileInputStream inputStream = new FileInputStream("input.txt");
InputStreamReader streamReader = new InputStreamReader(inputStream, "UTF-8");
BufferedReader in = new BufferedReader(streamReader);
Map<String, Integer> map = new HashMap<String, Integer>();
int trees = 0;
for (String s; (s = in.readLine()) != null; trees++) {
Integer n = map.get(s);
if (n != null) {
map.put(s, n + 1);
} else {
map.put(s, 1);
}
}
该文件包含,在这种情况下,树的名字......
Red Alder
Ash
Aspen
Basswood
Ash
Beech
Yellow Birch
Ash
Cherry
Cottonwood
可以使用StringTokenizer
渔获你想要的任何部分。
如果我们对大文件使用Scanner
,我们会发生一些错误。用10000行从文件中读取100行!
扫描器可以读取它实现了可读 接口的任何对象的文本。如果调用底层可读的Readable.read(java.nio.CharBuffer)方法会引发IOException,那么 扫描器会假定已达到输入的末尾。通过ioException()方法检索到的底层可读的最近IOException可能为 。
告诉API
祝你好运!
答案是否定的,但它通过缓冲区读取文件 - 这意味着在块中。 – Alex 2015-04-15 13:25:54