java中读取文件路径问题

在读配置文件的时候,遇到找不到该文件。明明就在这里,相对位置也对了,怎么就是找不到了呢。下面来解惑:
我们知道,在java中读取文件至少有以下两种方式,我这里指的是本地文件,网络流不计在内。
方式一:
File file = new File(path);
FileInputStream fis = new FileInputStream(file);
方式二:
FileInputStream fis = 所在文件类名.class.getResourceAsStream(path);
背景描述:我有一个配置文件weixin.properties,直接放在src下。现在我要在 com.hww.path.FilePathTest 这个类中来读取 weixin.properties这个文件。
    //使用第一种方式:
    //路径是相对于所在项目的,是文件路径,是磁盘中的位置。故路径前面要加上src。
    File file = new File("src/weixin.properties");
    FileInputStream in  = new FileInputStream(file);
//使用第二种方式
//相对路径就变成了bin(确切叫classpath)路径下的类路径了
//根路径就是classpath了,也就是编译路径了
InputStream ins1 =  FilePathTest.class.getResourceAsStream("../../../weixin.properties");

InputStream ins2 = FilePathTest.class.getResourceAsStream("/weixin.properties");

//我们可以通过下面的方法打印出路径来
String url1 = FilePathTest.class.getResource("/").getPath();
System.out.println(url1); //输出: /E:/workspace/JavaNet/bin/

String url2 = FilePathTest.class.getResource(".").getPath();
System.out.println(url2); // 输出:/E:/workspace/JavaNet/bin/com/hww/path/

另外补充一下,根路径(/)是不能用File.separator表示。只能用于分割之间。

如图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值