使用getResourceAsStream()方法从远程位置读取属性文件

时间:2013-06-07 06:46:51

标签: java properties

我可以使用以下代码从互联网上的远程位置读取文件吗?

InputStream is = getClass().getResourceAsStream("/filename.properties");
Properties pro = new Properties();
pro.load(is);
// ...

我可以将/filename.properties替换为192.168.173.238/D:/war/filename.properties等远程路径吗?如果是,我该如何指定路径?此代码在Apache Tomcat中运行。

2 个答案:

答案 0 :(得分:2)

如果网址可以使用(就像您在网页浏览器的地址栏中输入的那样),请使用URL#openStream()URLConnection#getInputStream()

InputStream is = new URL(url).openStream();

如果它可以通过本地磁盘文件系统路径使用(就像您在磁盘资源管理器的地址栏中输入的那样),请使用FileInputStream

InputStream is = new FileInputStream(path);

这很简单。

你的下一个问题应该是,“什么是正确的URL或磁盘文件系统路径?”。根据目前提供的信息无法回答这个问题。

答案 1 :(得分:1)

  

您好我可以使用以下代码从互联网上的远程位置读取一个文件。

可能不是。您只能使用它来读取CLASSPATH上可用的属性文件。除非您使用的是RMI代码库功能或URLClassLoaders,否则您的CLASSPATH不包含网络位置。

您似乎并不了解getResourceAsStream()实际上是什么。