2013-02-18 79 views
0

我做以下,更新捆绑资源文件

String str = "this is the new string"; 
URL resourceUrl = getClass().getResource("path_to_resource"); 
File file = new File(resourceUrl.toURI()); 
BufferedWriter writer = new BufferedWriter(new FileWriter(file)); 
writer.write(xml); 
writer.close(); 

在上面的代码我想写包含在我的Java包中的一个资源文件。执行代码后,我的程序执行得很好,但文件只是更新了web-INF中的属性文件,而不是它存储的包。任何人都可以请帮我看看我怎么能做到这一点,或者我在这里做错了什么?非常感谢。

+0

不太清楚你想在这里实现什么,但getClass()。getResource(..)会在你的类路径中选取第一个匹配的资源。如果这不是你想要的,那么你可能不得不看另一种指定想要的文件的方式。另外,如果资源位于jar中,那么你的构造会失败,因为URL不能作为File访问。 – Steinar 2013-02-18 21:54:04

回答

1

您不应该试图写入与应用程序类一起存储的文件。根据应用程序服务器,您尝试写入的位置可能不可写,或者应用程序可能从应用程序存档(.war文件)运行。

您应该使用外部文件夹来存储配置和其他应用程序数据。通常,您可以通过环境变量或部署期间指定的属性来指定此文件夹。

+0

非常感谢您的回复,但我还有一个问题,我试图通过这样做来实现,是修改属性文件以便在运行时由我的应用程序读取。你能建议一个正确的方法来做到这一点? – RegisteredUser 2013-02-19 14:26:46

+0

你不清楚。您在什么时候尝试修改此文件。 – 2013-02-20 00:14:24