读取具有相同多个键的.txt(属性)文件 - java

时间:2015-02-13 12:15:44

标签: java

在简单的java术语中,不使用任何其他库(apache),如何阅读下面的行:

data.txt
    CheckUpdate:  110
    CheckTechNotes:  11
    CheckUpdate:  220
    CheckTechNotes:  21
    CheckUpdate:  330
    CheckTechNotes:  31

在代码下方使用:

public class PropertiesFile {
    public static void main(String[] args) {
        Properties prop = new Properties();
        InputStream input = null;

        try {
            input = new FileInputStream("data.txt");
            prop.load(input);
            Enumeration<?> e = prop.propertyNames();

            while (e.hasMoreElements()) {
                System.out.println(prop.getProperty("CheckUpdate"));
            }
        } catch (IOException ex) {
            ex.printStackTrace();
        } finally {
            if (input != null) {
                try {
                    input.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }

    }
}

总是返回330,我如何获得110,220和330的值?

注意:就像在文件中有3个员工详细信息一样,我如何阅读这3个员工对象?

请建议。

感谢

3 个答案:

答案 0 :(得分:1)

属性文件包含一组键值对,因此重复键没有意义。 propertyName()调用将只为您提供不同的键。只需使用普通的FileInputStream打开文件,然后扫描条目。

答案 1 :(得分:0)

您可以在阅读List<String>时添加这些属性,然后将其作为 myList.add(prop.getProperty("CheckUpdate"));

答案 2 :(得分:0)

对于此类数据,您可能希望使用结构化文件格式,例如 JSON ,而不是像属性这样的平面文件格式。有许多实用程序库可用于反序列化数据,例如gson。