这是一篇关于java中使用FileReader读取properties配置文件读取失败问题的解决方法
Error:Exception in thread "main" java.io.FileNotFoundException: web.properties (No such file or directory)
![image-20240512185147347]()
读取方式:
1 2 3 4 5 6 7
| FileReader fileReader = new FileReader("web.properties"); Properties prop = new Properties(); prop.load(fileReader); System.out.println(prop);
fileReader.close();
|
![image-20240512185016521]()
结果出现找不到文件错误
Exception in thread "main" java.io.FileNotFoundException: web.properties (No such file or directory)
![image-20240512185147347]()
问题解决:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| Properties pro = new Properties(); { InputStream inStream = DatabaseConfig.class.getClassLoader().getResourceAsStream("database.properties"); pro.load(inStream); inStream.close(); } { FileReader reader = new FileReader("database.properties"); pro.load(reader); reader.close(); }
|
项目结构:
1 2 3 4 5 6 7 8 9 10 11 12 13
| servlet_simulate ├── servlet_simulate.iml └── src ├── com │ ├── apache │ │ └── Tomcat.java │ ├── ethan │ │ ├── BankServlet.java │ │ ├── UserListServlet.java │ │ └── UserLoginServlet.java │ └── sun │ └── Servlet.java └── web.properties
|
由于我的配置文件在src下,所以移动到项目文件下就行了
但是,我使用的MacOS系统,还需要把项目跟添加上,不添加的话还是报同样的错误:
1
| FileReader fileReader = new FileReader("servlet_simulate/web.properties");
|
这里需要注意的是,properties 文件的路径问题,两种方式要求的文件路径是不一样的,防止操作文件时会出现 FileNotFoundException 的情况。