0

我有一个abc.txt在我的 c: 驱动器中命名的文件,我正在通过 java 缓冲写入器方法读取它。下面显示了文件的内容

abc.txt
******    
Id|ytr|yts
1|W|T
2|W|T
3|W|T

现在我想以这样的方式将它的内容存储在一个集合中(即在一个哈希图中),对于 Id 键,我应该得到 ytr 和 yts 列的值。

那是1我应该得到 ytr 和 yts 列的值的 Id。

请告诉我如何将这样的东西存储在地图中并检索它,我想通过java本身来实现它。

4

3 回答 3

1

Create some sort of class that has ytr and yts as fields. Create a map with id as key (it's an integer, right?) and instances of your new class as the values.

于 2013-11-11T07:54:34.530 回答
-1

使用以下示例。

文件内容:

1 W T 
2 W T 
3 W T

加载和查看输入文件内容的程序

    Map<Integer,String[]> map=new HashMap<>();
    Scanner sc=new Scanner(new File("file.txt"));
    while(sc.hasNextLine()){
        String[] str=sc.nextLine().split(" +");
        //Store to map.
        map.put(Integer.valueOf(str[0]), new String[]{str[1],str[2]});
    }
    //Get key and values from map
    for(Map.Entry<Integer,String[]> entry: map.entrySet()){
        System.out.print("Key : "+ entry.getKey() +" Values : [");
        for (String str : entry.getValue()) {
            System.out.print(" "+str);
        }
        System.out.println(" ]");
    }
于 2013-11-11T08:04:22.720 回答
-1

首先,您应该使用阅读器(而不是您的问题所暗示的作家)阅读文件。任何Reader可以逐行读取文件作为字符串的都可以。看看BufferedReader例如。

两个将数据存储在您想要将您的密钥(一个简单的字符串,或者可能是一个整数)映射到您的数据(看起来像两个字符串)的映射中。由于您的数据是“复杂”数据结构,因此它没有原始数据类型。您应该创建一个将此数据保存为成员变量的类。当您阅读一行时,您然后创建该类的一个实例,将数据分配给该对象并HashMap使用密钥将其放入您的。查看接受键和值对象的 put 方法。

我敢肯定,其余的你可以自己解决。请查看我在这里提到的类的 JavaDoc。如果您对什么是类/对象有一些基本的了解,您就可以完成其余的工作。

于 2013-11-11T08:01:21.583 回答