Java File类构造函数使用相对路径的问题

这篇博客探讨了在Java中使用File类读取非根目录文件时遇到的问题。作者发现当文件位于多层包结构下,需要指定完整路径才能正确访问。通过System.getProperty("user.dir")获取当前工作目录,并尝试修改此属性来访问文件,但未成功。解决方案是直接提供相对于源代码目录的路径。这是一篇关于Java文件I/O和工作目录基础的记录。
摘要由CSDN通过智能技术生成

说明问题

先贴下项目结构

当我使用FileIO包下的TestScanner想读取一个同层下的input.txt文件测试nextInt()和nextLine()方法在同一行使用会出现何种情况时,利用如下代码无法获取到指定的文件

File file = new File("input.txt");

因为书上举例比较简单,很多的文件都是在根目录下,像上述代码就可以获取到这个File对象了,但是自己这边因为分类所以放了很多包,很多层。

随后在TestScanner中查看了当前项目的当前工作路径

System.out.println(System.getProperty("user.dir"));

C:\IDEs\IDEA\IDEA Java Project\JavaFundamental

所以需要加上从src开始到目标文件所在目录的路径

System.out.println(System.getProperty("user.dir"));
 
File file = new File("src\\com\\croquette\\exceptionAndTextIO\\FileIO\\input.txt");

这样可以读取到input.txt

也尝试了修改user.dir属性(当前工作路径),可以打印修改后的当前工作路径,但是新建File对象依然报找不到自定文件的错,这里还需要慢慢学习。(记录的东西比较基础,大佬勿喷(^ 3 ^))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值