java获取文件的路径问题
java获取文件的路径问题
在java中读取读取文件,经常因为路径的问题找不到,此文用于记录如何定位文件的简单方法。
本基于springboot做的测试,主要是构建工程方便,所用的方法都是JDK中的方法,主要测试有”/“和没有""的问题,以及getResourceAsStream(String string)和getResource(String string)的问题。
1.项目结构

解释一下,主要有两个配置文件,a.properties和b.properties,a.properties方法java的代码里,b.properties放在resources的配置目录中。
编译之后,classpath的路径为:target/classes,斜线"/"指的也是这个路径,所有,如果有斜线就会去这个路径下面去找,如果没有斜线,就会去那个类的当前坐在路径去找。
2.例子
public class TestPath {
public static void main(String[] args) {
TestPath t = new TestPath();
//在当前TestPath类所在的包查询
InputStream a = t.getClass().getResourceAsStream("a.properties");
//在classpath路径下进行查询
InputStream b = t.getClass().getResourceAsStream("/b.properties");
//在当前TestPath类所在的包查询
URL url_a = t.getClass().getResource("a.properties");
//在classpath路径下进行查询
URL url_b = t.getClass().getResource("/b.properties");
System.out.println();
}
}
以上,两个方法都可以用来定位文件,区别有两个:
- 有没有斜线,没有斜线的话在类方法的所在package中查询,如果有斜线,就去classpath下面查询
- 返回值,
getResourceAsStream()返回的是InputStream,可以直接读取。getResource()返回的是URL对象,方便获取文件的path路径。
java获取文件的路径问题的更多相关文章
- jsp和java获取文件或路径
1.如何获得当前文件路径常用:(1).Test.class.getResource("")得到的是当前类FileTest.class文件的URI目录.不包括自己!(2).Test. ...
- Java获取web项目路径
File f = new File(WebPath.class.getResource("/").getPath()); String path = f.getParentFile ...
- HDFS 读取、写入、遍历文件夹获取文件全路径、append
版权声明:本文为博主原创文章,未经博主同意不得转载.安金龙 的博客. https://blog.csdn.net/smile0198/article/details/37573081 1.从HDFS中 ...
- struts2获取文件真实路径
CreateTime--2017年8月25日15:59:33 Author:Marydon struts2获取文件真实路径 需要导入: import java.io.FileNotFoundExc ...
- linux C++ 获取文件绝对路径
提供ftp服务时需要获取文件绝对路径,这里记录一下. #include <stdlib.h> #include <stdio.h> #include <limits.h& ...
- 一个获取文件绝对路径的sh
脚本里有个获取文件绝对路径的需求,linux里有个很方便的realpath命令,但是mac下没有,甚至readlink -f也跟linux下的表现不同,所以……直接用pwd算了 #!/bin/bash ...
- C#路径中获取文件全路径、目录、扩展名、文件名称
C#路径中获取文件全路径.目录.扩展名.文件名称常用函数 需要引用System.IO 直接可以调用Path的静态方法 class Program { static void Main(string[] ...
- java 获取文件后缀名(文件类型)
java 获取文件后缀名(文件类型) CreateTime--2018年5月23日09:16:31 Author:Marydon // 获取文件名的后缀名(文件类型) String oldFile ...
- Delphi获取文件名、文件名不带扩展名、文件名的方法;delphi 获取文件所在路径
取文件名 ExtractFileName(FileName); 取文件扩展名: ExtractFileExt(filename); 取文件名,不带扩展名: 方法一: Function Extrac ...
随机推荐
- javascript中的this在不同场景下的区别
javascript在初版的设计上存在失误,导致了这门语言在使用时,经验型写法并不能得到像其它几个流行语言一样预期.其中的this的使用就是一个典型. this在javascript中是由解释器注入的 ...
- rocketmq 源码
https://github.com/YunaiV/incubator-rocketmq
- 跟Python打包相关的一些文章
6 things I learned about setuptools Python 101: easy_install or how to create eggs « The Mouse Vs. T ...
- Kylin 与 Spark SQL相比,有哪些差异和优势?
SparkSQL本质上是基于DAG模型的MPP.而Kylin核心是Cube(多维立方体).关于MPP和Cube预处理的差异,重复如下: > MPP [1] 的基本思路是增加机器来并行计算,从而提 ...
- JVM 内部原理(三)— 基本概念之类文件格式
JVM 内部原理(三)- 基本概念之类文件格式 介绍 版本:Java SE 7 每位使用 Java 的程序员都知道 Java 字节码在 Java 运行时(JRE - Java Runtime Envi ...
- c# 使用GDAL处理大图
注意问题: 1.GDAL 使用官网生成好的dll,必须把Bin目录下的dll一并加到执行目录下去,否则会出错. 2. 用环境变量设置引用路径可以避免一大堆dll放一起.代码如下: /// <s ...
- Python之获取微信好友信息
save_info.py: #!/usr/bin/python # -*- coding: UTF-8 -*- import itchat import pickle itchat.auto_logi ...
- Kiss MySQL goodbye for development and say hello to HSQLDB
The days of using MySQL, DB2, PostgreSQL etc for development is over.. I don’t know why any program ...
- Zookeeper+Kafka集群部署
Zookeeper+Kafka集群部署 主机规划: 10.200.3.85 Kafka+ZooKeeper 10.200.3.86 Kafka+ZooKeeper 10.200.3.87 Kaf ...
- 提升linux下TCP服务器并发连接数(limit)
https://cloud.tencent.com/developer/article/1069900 1.修改用户进程可打开文件数限制 在Linux平台上,无论编写客户端程序还是服务端程序,在进 ...