为了账号安全,请及时绑定邮箱和手机立即绑定

无法从Java读取属性文件

无法从Java读取属性文件

慕仙森 2021-05-06 10:13:46
我无法从文件中读取属性。当我尝试打印时,它为我提供了空值;当我调试时,我了解到它没有在function中加载文件 pro.Load()。但是我的路径是正确的,但仍然无法加载文件package AdvancedJava;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;import java.util.Properties;public class ReadingPropertiesFile {public static void main(String[] args) throws FileNotFoundException {    Properties pro = new Properties();    String path = "C://Users//310259741//Documents//ProjectManagment//JavaBasics//object.properties";    // BufferedReader reader = new BufferedReader(new FileReader(path));    File f = new File(path);    FileInputStream fis = null;    try {        fis = new FileInputStream(f);        pro.load(fis);    }    catch (IOException e) {        System.out.println(e.getMessage());    }    System.out.println(pro.getProperty("lastname"));  }}属性文件内容firstname = Johnlastname = harryAutomation = Selenium
查看完整描述

3 回答

?
小唯快跑啊

TA贡献1863条经验 获得超2个赞

您的示例对我来说很好。但是,如果没有堆栈跟踪,我们将无法为您提供有关您获得的NPE的帮助。


无论如何,我有一些关于您的代码的提示。我建议您尝试使用-与资源一起使用,FileInputStream以确保一旦完成将关闭资源。


您可以避免使用new File(path);。相反,我建议Paths从java.nio.*包中使用。基于您的代码片段的示例如下:


public static void main(String[] args) {

    Properties properties = new Properties();

    try (FileInputStream stream = new FileInputStream(Paths.get("E:\\test\\file.txt").toFile())) {

        properties.load(stream);

    } catch (IOException e) {

        e.printStackTrace();

    }

    System.out.println(properties.getProperty("lastname"));

}

使用的优点Paths是,它们是系统不可知的(如果没有记错的话),您无需担心提供正确的路径定界符。


查看完整回答
反对 回复 2021-05-26
  • 3 回答
  • 0 关注
  • 148 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信