当前位置: 首页 > 面试题库 >

Java将txt文件读取到hashmap中,并用“:”分隔

徐涵亮
2023-03-14
问题内容

我有一个txt文件,格式为:

Key:value
Key:value
Key:value
...

我想将所有键及其值放入创建的hashMap中。如何获得FileReader(file)Scanner(file)知道何时在冒号(:)处拆分键和值?:-)

我试过了:

Scanner scanner = new scanner(file).useDelimiter(":");
HashMap<String, String> map = new Hashmap<>();

while(scanner.hasNext()){
    map.put(scanner.next(), scanner.next());
}

问题答案:

使用逐行读取文件BufferedReader,并针对该行split中第一次出现的行执行一次:(如果没有,:则忽略该行)。

这是一些示例代码-避免使用Scanner(它有一些微妙的行为,恕我直言,实际上比其价值更大的麻烦)。

public static void main( String[] args ) throws IOException
{
    String filePath = "test.txt";
    HashMap<String, String> map = new HashMap<String, String>();

    String line;
    BufferedReader reader = new BufferedReader(new FileReader(filePath));
    while ((line = reader.readLine()) != null)
    {
        String[] parts = line.split(":", 2);
        if (parts.length >= 2)
        {
            String key = parts[0];
            String value = parts[1];
            map.put(key, value);
        } else {
            System.out.println("ignoring line: " + line);
        }
    }

    for (String key : map.keySet())
    {
        System.out.println(key + ":" + map.get(key));
    }
    reader.close();
}


 类似资料:
  • 我有一个txt文件,格式如下: 我想把所有键和它们的值放在我创建的hashMap中。如何让或知道何时拆分冒号(:)处的键和值?:-) 我试过:

  • 我正试图编写一个程序,读取网络中相互交互的节点列表。它以以下格式写入文本文件: 这表示节点1与节点2和节点3交互,节点2仅与节点3交互,等等。 该程序将能够读取该文件,并将删除任何重复的交互,并且如果我输入节点的名称,将能够向我返回节点与其他节点的交互次数。然而,我对Java非常陌生,我首先尝试让它读入文件,尽管我的代码目前没有读入文件。以下是我迄今为止的代码: 任何关于如何解决此问题的帮助都将不

  • 我一直在互联网上寻找帮助,但我找不到,所以我求助于发帖。 我有一个txt文件,格式如下 1/2 0 1/6 6/11 1/6 2/10 我需要读取这些单独的分数,并输入分子和分母的函数称为BigFraction(num,denom)。 我调用读取器并将其作为字符串输出。然后,我在空格上进行拆分,以获得作为字符串的各个分数,并将它们输入到我的助手方法strToBF中,该方法在正斜杠上进行拆分,并输入

  • 问题内容: 我会尽量保持清楚,但如果我的问题不完美,请原谅我。我有一个包含多行数据的txt文件。例: 123拉尔夫·玻色20000 200 1 2 256 ed shane 30000 100 2 4 … 我需要按顺序读取每一行,并将其传递回单独类中的方法进行处理。我知道如何通过使用StringTokenizer将每一行分解为元素。 但是,我不确定如何一次读取一行,将元素传递回另一类,然后在完成处

  • 我的项目中有这样一段代码: 没有错误,应用程序运行正常,但是变量中从来没有任何文本,我确信txt文件中有文本! 我已经尝试过不同的方法来读取文本文件(使用BufferedReader、Scanner、FileInputStream和FileReader),但都不起作用。 另外,我几乎可以肯定问题不在变量中,因为我尝试通过代码(使用运行时)打开文件,它正常打开了正确的文件。 好的,我尝试添加,但是仍

  • 问题内容: 我正在研究一个Java程序,该程序逐行读取文本文件,每个文本文件都有一个数字,将每个数字都将其扔到数组中,然后尝试使用插入排序对数组进行排序。我需要有关程序读取文本文件的帮助。 我收到以下错误消息: 我的“ src”,“ bin”和主项目文件夹中有.txt文件的副本,但仍找不到该文件。我正在使用Eclipse。 问题答案: 你必须把文件扩展名放在这里