将文件中的键值对加载到 Properties 对象中,并使用 Properties.list(PrintWriter p) 方法打印出所有键值对

loading key and value pairs in a file into a Properties object and print out all key and value pairs using Properties.list(PrintWriter p) method

我是 Java 的新手。我正在尝试将文件中的所有键值对加载到 Properties 对象中,并使用 Properties.list(PrintWriter p) 方法打印出所有键值对。下面是我想出的代码。

但是,当我运行代码时,IDE没有输出任何东西。为什么会这样?我做错了什么吗?

Properties p1 = new Properties();
InputStream is1 = new FileInputStream("File.txt");
p1.load(is1);
PrintWriter pw1 = new PrintWriter(System.out);
p1.list(pw1);

Properties p1 = new Properties(); InputStream is1 = new FileInputStream("File.txt"); p1.load(is1); PrintWriter pw1 = new PrintWriter(System.out); p1.list(pw1); pw1.flush(); pw1.close();

您需要在 PrintWriter 上调用 flush()。

你也可以这样显示:

    Properties p1 = new Properties();
    InputStream is1 = new FileInputStream("src\File.txt");
    p1.load(is1);

    for(Object key:p1.keySet())
    {
        System.out.println(key+"="+p1.get(key));
    }

或:

System.out.println(p1.toString());

您可以尝试通过以下方式实现代码:

            Properties p1 = new Properties();
            InputStream is1 = new FileInputStream("File.txt");
            p1.load(is1);
            PrintWriter pw1 = new PrintWriter(System.out);
            System.out.println("printing property values");
            p1.list(pw1);
            System.out.println(p1.getProperty("1"));
            System.out.println(p1.getProperty("2"));

进一步添加到您的代码中,如果您希望将所有键和值一起打印,您还可以选择使用以下方式使用枚举:

        Properties p1 = new Properties();
        InputStream is1 = new FileInputStream("File.txt");
        p1.load(is1);
        PrintWriter pw1 = new PrintWriter(System.out);
        System.out.println("printing property values");
        p1.list(pw1);
        Enumeration<?> e = p1.propertyNames();
        while (e.hasMoreElements()) {
            String key = (String) e.nextElement();
            String value = p1.getProperty(key);
            System.out.println("Key : " + key + ", Value : " + value);
        }

This will get you all the keys and respective values together on the console.