【问题标题】:How to open file in another directory in java?如何在java中打开另一个目录中的文件?
【发布时间】:2013-01-25 11:24:41
【问题描述】:

如何打开当前目录中不存在但在另一个目录中的文件。例如,我有一个文件夹 F:/test,我的文件位于 F:/test/test2/doit.txt 和 D:/test3 /doit2.txt

制作File对象时在参数路径中输入的内容如下:

File f = new File("/test2/doit.txt");

【问题讨论】:

标签: java file directory


【解决方案1】:

不管是哪个操作系统,一个文件例如 demo.txt 都可以像这样访问

File file = new File("/d:/user/demo.txt");

在文件位于 D:\user\

的 Windows 中
File file = new File("/usr/demo.txt");

*nix*nux文件所在的/usr/

此外,如果想要相对访问一个文件,可以按如下方式完成(考虑 Windows 示例):

假设我在 D: 中的歌曲目录中:喜欢:

D:/
|
|---songs/
|   |
|   |---Main.java
|
|---user/
    |
    |---demo.txt

并且代码在 Main.java 中,那么下面的代码就可以工作了。

File file = new File("../user/demo.txt");

【讨论】:

  • 你没有在 File() 构造函数中转义斜杠
【解决方案2】:

假设你从 F:/test 运行你的程序,你应该使用类似的东西:

File f = new File("./test2/doit.txt");

使用硬编码的绝对路径不是一个好主意 - 当用户具有不同的目录结构时,您的程序可能无法运行。

【讨论】:

  • @NickJ 解释了接受的答案。如果您无法理解评论,也许您应该(做一些搜索并)提出一个新问题。
  • 我添加了更多信息。 @Andrew Thompson:假设您从 D:/test 运行程序并且文件位置是 D:/test/test2/doit.txt,那么路径是正确的。
  • @AndrewThompson :我实际上是在指导 Pawel 包括他的主张的原因
【解决方案3】:

请在 Windows 操作系统上尝试以下代码:

reader = new FileReader ("C:/Users/user/Desktop/java/test.txt"); 

【讨论】:

  • 好的,所以在 java.io 中路径需要是绝对的而不是相对的。谢谢x
  • 这样表达路径的麻烦,它确保应用程序只能在Windows上运行。 Java应该是跨平台的。 Linux 没有 C: 驱动器。
  • 现在我可以阅读了,这是一个糟糕的答案。 OP 应该弄清楚如何使用相对目录。另外,不要添加称呼和签名。变成答案(或问题)。作为 cmets,它们是噪音。作为 Q 或 A 的一部分,真的很烦人。
猜你喜欢
  • 1970-01-01
  • 2020-09-10
  • 1970-01-01
  • 1970-01-01
  • 2020-04-30
  • 2014-05-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多