java读取文件路径

时间:2013-01-03 07:48:15

标签: java readfile

原始项目中,我有一个读取txt文件的JAVA文件,我把txt文件放在这个项目的根目录下,一切都很好。

FileInputStream in = new FileInputStream("properties.txt");

现在,我将此项目导出为jar,在新项目中,我将此jar用作外部库。这里有一个问题:当我使用这个外部库文件时,我应该把txt文件放在这个新项目中?

5 个答案:

答案 0 :(得分:1)

如果您将此文件与项目一起发送并且不需要更改,则可以将其添加到您的jar并通过ClassLoader getResourceAsStream从那里加载:

this.getClass().getResourceAsStream("properties.txt");

(技术上它不再是文件,当它进入Java类领域,而是资源时)

答案 1 :(得分:1)

在jar中,使用类似

的方式访问它
getClass().getClassLoader().getResourceAsStream("properties.txt")

答案 2 :(得分:0)

该文件应位于类路径的根目录。

答案 3 :(得分:0)

Java提供了许多设置类路径的机制,包括通过命令行,通过环境变量,以及在可执行Java jar文件的MANIFEST.MF中设置它。

这些都是需要管理的痛苦。了解技术并了解基础知识是很好的。但实际使用它们确实是一个坏主意。

你应该做的就是这个。

首先,将所有Java库放在系统的单个位置。 C:\ java \ libraries,或者其他什么。你记得的某个地方,你的所有项目都可以访问。

接下来,使用其版本号命名所有库。如果您使用log4j v1.4.1,则将jar放在库区域的log4j-1.4.1目录中。这为您提供了“免费”的库版本。

最后,学习Ant。对于简单的项目,Ant很简单。使用Ant build.xml文件来编译,测试和运行您的应用程序。

为什么呢?有几个原因。

因为一旦设置完毕,向项目添加新库是微不足道的,您可以在build.xml中添加一行。 Ant可以让您更轻松地处理简单的抽象(就像所有库所在的位置一样)。

build.xml是自包含的。如果您使用类路径的环境变量,那么一个项目的类路径可能与另一个项目的类路径不同。这意味着重置环境变量。继续这个,你最终会发誓说某个“新问题”,因为你的类路径设置错误,它会“之前”工作。在build.xml中设置一次,忘掉它。

Ant是可移植的。它在Windows,Linux,Mac,AS / 400上运行相同,它运行Java运行的所有地方,与shell脚本或BAT文件不同。

它很轻巧。简单的ant脚本很简单。他们不会给他们带来太多的包袱,你总是可以让他们吓人复杂。它只比Maven简单得多。

大多数IDE直接支持Ant。如果您决定返回IDE,大多数人只需使用最少配置的ant构建文件即可。

这是使用notepad ++解决类路径问题的方法。设置类路径是有效的,但它还不够,管理和管理都很痛苦。学习Ant的基础知识可以让你在最小的工作中走得更远。

答案 4 :(得分:0)

将文件放入应用程序的“工作目录”中,表示启动应用程序的目录。

你应该有一些约定,例如“配置文件必须驻留在工作目录或工作目录/ config中”并提供一种覆盖它的方法,例如使用系统属性,而不是像你这样做:

getClass().getClassLoader().getResourceAsStream(System.getProperty("configuration.file.path","properties.txt"))