我想通过使用"文件类"从项目文件夹中获取文件,我该怎么做?
File file=new File("x1.txt");
Run Code Online (Sandbox Code Playgroud)
Sin*_*1ty 23
嗯,有许多不同的方法来获取Java文件,但这是一般的要点.
不要忘记你try {} catch (Exception e){}至少需要将它包装在一个内部,因为File的一部分java.io意味着它必须具有try-catch块.
不要踩到Ericson的问题,但是如果你使用实际的软件包,你会遇到文件位置的问题,除非你明确使用它的位置.相对路径与包混乱.
即
src/
main.java
x.txt
Run Code Online (Sandbox Code Playgroud)
在这个例子中,使用File f = new File("x.txt");inside main.java会抛出一个file-not-found异常.
但是,使用File f = new File("src/x.txt");将工作.
希望有所帮助!
Mad*_*mer 12
这听起来就像文件嵌入在您的应用程序中.
你应该使用getClass().getResource("/path/to/your/resource.txt"),返回一个URL或getClass().getResourceAsStream("/path/to/your/resource.txt");
如果它不是嵌入式资源,那么您需要知道从应用程序的执行上下文到文件所在位置的相对路径
如果您尝试加载与Java类不在同一目录中的文件,则必须使用运行时目录结构而不是设计时出现的结构.
要找出运行时目录结构是什么,请检查{root project dir}/target/classes目录.该目录可通过"."访问.URL.
根据user4284592的回答,以下内容对我有用:
ClassLoader cl = getClass().getClassLoader();
File file = new File(cl.getResource("./docs/doc.pdf").getFile());
Run Code Online (Sandbox Code Playgroud)
具有以下目录结构:
{root dir}/target/classes/docs/doc.pdf
Run Code Online (Sandbox Code Playgroud)
希望这有助于任何努力理解URL逻辑的人.
| 归档时间: |
|
| 查看次数: |
133304 次 |
| 最近记录: |