如何将文本文件作为参数传递?

我试图编写一个程序来通过args读取文本文件,但是当我运行它时,它总是说找不到该文件,即使我将其放置在与我正在运行的main.java相同的文件夹中。有谁知道我的问题的解决方案或更好的阅读文本文件的方法?

回答:

请勿在中使用相对路径java.io.File

它将变成相对于当前工作目录的,这取决于您如何运行应用程序,而该方法又是无法从应用程序内部进行控制的。这只会导致可移植性麻烦。如果从Eclipse内部运行,则该路径将相对于/path/to/eclipse/workspace/projectname。如果从命令控制台内部运行它,它将相对于

当前

打开的文件夹(即使您按绝对路径运行代码!)。如果通过双击JAR来运行它,它将相对于JAR的根文件夹。如果您在网络服务器上运行它,它将相对于/path/to/webserver/binaries。Etcetera。

始终在中使用绝对路径java.io.File,没有任何借口。

为了获得最佳的可移植性并减少绝对路径的麻烦,只需将文件放在运行时类路径覆盖的路径中(或将其路径添加到运行时类路径中)。这样,您可以通过来获取文件Class#getResource()或通过来获取文件的内容Class#getResourceAsStream()。如果它与当前类位于同一文件夹(包)中,则它已经在类路径中。要访问它,只需执行以下操作:

public MyClass() {

URL url = getClass().getResource("filename.txt");

File file = new File(url.getPath());

InputStream input = new FileInputStream(file);

// ...

}

要么

public MyClass() {

InputStream input = getClass().getResourceAsStream("filename.txt");

// ...

}

以上是 如何将文本文件作为参数传递? 的全部内容, 来源链接: utcz.com/qa/415543.html

回到顶部