如果行之间有多个间隙,如何读取输入文件中的所有行?

时间:2017-12-12 11:55:17

标签: java hashmap

我创建了一个hashmap>调用myMap,我希望将所有唯一的单词存储在Hashmap的键中,并将文件的名称存储在与关键字对应的值中。 从多个文件中获取输入并将其名称存储在与关键字相对应的值中。

来自1个文件的示例输入

AS YOU LIKE IT

by William Shakespeare



DRAMATIS PERSONAE.

DUKE, living in exile
FREDERICK, his brother, and usurper of his dominions
AMIENS, lord attending on the banished Duke
JAQUES,   "      "       "  "     "      "
LE BEAU, a courtier attending upon Frederick
CHARLES, wrestler to Frederick
  OLIVER, son of Sir Rowland de Boys
JAQUES,   "   "  "    "     "  "

代码

String name = f.getName();

    BufferedReader in = new BufferedReader(new FileReader(f));
    String words = in.readLine().trim().toLowerCase();

    for(String word: words.split("\\s+")) {
        if (myMap.get(word) == null) {
            myMap.put(word, new ArrayList<String>());
        }
            myMap.get(word).add(name);
        }

我只能从所有文件中读取第一行..

3 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

我发现你正试图解决某种功课。

已经有一些相关和良好的答案给你,但还有另一种方法,也可能是相关的 - 特别是如果你正在参加一些编程课程。

它被称为&#34; 谷歌搜索方法&#34;

根据您以前的搜索查询,您可能会得到更好或更差的结果。但是,在 google.com 网站上,您可以快速找到一些常见编程问题的相关结果。 例如,我搜索&#34; 读取java中文件的所有行&#34;我得到的第一个结果是:How to read a large text file line by line using Java?

与你的问题相似,但已有19个答案,最好的答案超过700个。

要缩小搜索结果的范围,例如仅显示stackoverflow的结果,您可以搜索:&#34; 从java site中的文件文本中读取所有行:stackoverflow.com &#34;

答案 2 :(得分:0)

这与空白行无关。

您拨打in.readLine().trim().toLowerCase();一次。它读了一行。

您需要再次调用它来获取第二行,然后再次调用以获取第三行,依此类推。

我确定你已经知道循环是什么 - 使用一个。