失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > java io 文件路径_如何从Java项目中的相对路径读取文件? java.io.File找不到指定的路径...

java io 文件路径_如何从Java项目中的相对路径读取文件? java.io.File找不到指定的路径...

时间:2019-08-02 20:06:38

相关推荐

java io 文件路径_如何从Java项目中的相对路径读取文件? java.io.File找不到指定的路径...

如何从Java项目中的相对路径读取文件? java.io.File找不到指定的路径

我有一个包含2个包的项目:

ListStopWords.txt

ListStopWords.txt

在包(2)中我有一个文本文件ListStopWords.txt,在包(1)中我有一个类FileLoadder.这是代码FileLoader:

File file = new File("properties\\files\\ListStopWords.txt");

但有这个错误:

The system cannot find the path specified

你能解决一下吗? 谢谢。

tiendv asked -07-25T13:51:44Z

10个解决方案

143 votes

如果它已经在类路径中,那么只需从类路径中获取它。 请勿在static中使用相对路径。它们依赖于当前工作目录,您无法完全控制Java代码。

假设static与FileLoader.class类在同一个包中:

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

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

或者如果你所追求的只是static:

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

如果文件是-as包名称提示 - 实际上是一个完全属性文件(包含static行),只有“错误”扩展名,那么您可以立即将其提供给static方法。

Properties properties = new Properties();

properties.load(getClass().getResourceAsStream("ListStopWords.txt"));

注意:当您尝试从static上下文中访问它时,请在上面的示例中使用FileLoader.class而不是getClass()。

BalusC answered -07-25T13:52:31Z

37 votes

如果我们要指定文件的相对路径,可以使用以下行。

File file = new File("./properties/files/ListStopWords.txt");

santhosh answered -07-25T13:52:59Z

20 votes

相对路径在java中使用。运营商。

。 表示与当前运行的上下文相同的文件夹。

..表示当前运行的上下文的父文件夹。

所以问题是你如何知道java目前正在寻找的路径?

做一个小实验

File directory = new File("./");

System.out.println(directory.getAbsolutePath());

观察输出,您将了解java正在查找的当前目录。 从那里,只需使用./运算符来定位您的文件。

例如,如果输出是

G:\ JAVA8Ws\ MyProject的\内容。

并且您的文件存在于MyProject简单使用的文件夹中

File resourceFile = new File("../myFile.txt");

希望这可以帮助

Samrat answered -07-25T13:54:26Z

7 votes

InputStream in = FileLoader.class.getResourceAsStream("");

try {

BufferedReader reader = new BufferedReader(new InputStreamReader(in));

String line = null;

while ((line = reader.readLine()) != null) {

System.out.println(line);

}

} catch (Exception e) {

e.printStackTrace();

}

frictionlesspulley answered -07-25T13:54:45Z

6 votes

试试.\properties\files\ListStopWords.txt

bUg. answered -07-25T13:55:13Z

4 votes

虽然BalusC提供的答案适用于这种情况,但是当文件路径包含空格时它会中断,因为在URL中,这些将被转换为%20,而不是有效的文件名。 如果使用URI而不是String构造File对象,则将正确处理空格:

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

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

Mark Krijgsman answered -07-25T13:55:39Z

1 votes

我本可以评论,但我的代表较少。萨姆拉特的回答为我做了这个工作。 最好通过以下代码查看当前目录路径。

File directory = new File("./");

System.out.println(directory.getAbsolutePath());

我只是用它来纠正我在项目中遇到的问题。 请务必使用./返回当前目录的父目录。

./test/conf/appProperties/keystore

Aditya Bhardwaj answered -07-25T13:56:16Z

0 votes

我想在src / main // js / Simulator.java中解析'command.json'。 为此我在src文件夹中复制了json文件并给出了这样的绝对路径:

Object obj = parser.parse(new FileReader("./src/command.json"));

sver answered -07-25T13:56:42Z

-1 votes

如果您尝试从静态方法或静态阻止调用getClass(),则可以执行以下方法。

您可以在要加载的Properties对象上调用getClass()。

public static Properties pathProperties = null;

static {

pathProperties = new Properties();

String pathPropertiesFile = "/file.xml;

InputStream paths = pathProperties.getClass().getResourceAsStream(pathPropertiesFile);

}

arun_kk answered -07-25T13:57:16Z

-1 votes

如果未读取文本文件,请尝试使用更接近的绝对路径(如果您愿意)你可以使用完整的绝对路径,)像这样:

FileInputStream fin=new FileInputStream("\\Dash\\src\\RS\\Test.txt");

假设绝对路径是:

C:\\Folder1\\Folder2\\Dash\\src\\RS\\Test.txt

KR N answered -07-25T13:57:51Z

如果觉得《java io 文件路径_如何从Java项目中的相对路径读取文件? java.io.File找不到指定的路径...》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。