java获取文件的路径问题

在java中读取读取文件,经常因为路径的问题找不到,此文用于记录如何定位文件的简单方法。

本基于springboot做的测试,主要是构建工程方便,所用的方法都是JDK中的方法,主要测试有”/“和没有""的问题,以及getResourceAsStream(String string)getResource(String string)的问题。

1.项目结构

解释一下,主要有两个配置文件,a.propertiesb.propertiesa.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获取文件的路径问题的更多相关文章

  1. jsp和java获取文件或路径

    1.如何获得当前文件路径常用:(1).Test.class.getResource("")得到的是当前类FileTest.class文件的URI目录.不包括自己!(2).Test. ...

  2. Java获取web项目路径

    File f = new File(WebPath.class.getResource("/").getPath()); String path = f.getParentFile ...

  3. HDFS 读取、写入、遍历文件夹获取文件全路径、append

    版权声明:本文为博主原创文章,未经博主同意不得转载.安金龙 的博客. https://blog.csdn.net/smile0198/article/details/37573081 1.从HDFS中 ...

  4. struts2获取文件真实路径

      CreateTime--2017年8月25日15:59:33 Author:Marydon struts2获取文件真实路径 需要导入: import java.io.FileNotFoundExc ...

  5. linux C++ 获取文件绝对路径

    提供ftp服务时需要获取文件绝对路径,这里记录一下. #include <stdlib.h> #include <stdio.h> #include <limits.h& ...

  6. 一个获取文件绝对路径的sh

    脚本里有个获取文件绝对路径的需求,linux里有个很方便的realpath命令,但是mac下没有,甚至readlink -f也跟linux下的表现不同,所以……直接用pwd算了 #!/bin/bash ...

  7. C#路径中获取文件全路径、目录、扩展名、文件名称

    C#路径中获取文件全路径.目录.扩展名.文件名称常用函数 需要引用System.IO 直接可以调用Path的静态方法 class Program { static void Main(string[] ...

  8. java 获取文件后缀名(文件类型)

      java 获取文件后缀名(文件类型) CreateTime--2018年5月23日09:16:31 Author:Marydon // 获取文件名的后缀名(文件类型) String oldFile ...

  9. Delphi获取文件名、文件名不带扩展名、文件名的方法;delphi 获取文件所在路径

    取文件名 ExtractFileName(FileName); 取文件扩展名: ExtractFileExt(filename); 取文件名,不带扩展名: 方法一:   Function Extrac ...

随机推荐

  1. 基于Ubuntu部署 memcached 服务

    系统要求:Ubuntu 16.04.1 LTS 64 位操作系统 安装并启动 memcached 服务 安装 memcached 使用apt-get安装 memcached sudo apt-get ...

  2. Rplidar学习(四)—— ROS下进行rplidar雷达数据采集源码分析

    一.子函数分析 1.发布数据子函数 (1)雷达数据数据类型 Header header # timestamp in the header is the acquisition time of # t ...

  3. 8.翻译系列: EF 6中配置领域类(EF 6 Code-First 系列)

    原文地址:http://www.entityframeworktutorial.net/code-first/configure-classes-in-code-first.aspx EF 6 Cod ...

  4. [Android源码]Android源码之高仿飞鸽传书WIFI热点搜索与创建(一)

    (本文详情来源:android源码 http://www.eoeandroid.com/thread-296427-1-1.html   转载请注明出处!)  [Android源码分享]飞鸽传书的An ...

  5. 物联网架构成长之路(20)-申请免费SSL证书

    0.前言 今天域名备案申请下来了,接下来就是申请个SSL证书,现在普通的网站没有SSL都不好意思见人了.可是稍微好点的企业级SSL证书还是比较贵的.不过还好有免费的可以用.只不过要定时去续时间.这个不 ...

  6. 使用SharedPreference和对象流存储对象

    编写PreferencesUtils工具类可以简单对象(可以缓存对象中所有public的简单属性)   另外研究了Preference存储与直接采用对象文件缓存方式的区别 第一次写文件时 1.效率,直 ...

  7. vue2.0 实现click点击当前li,动态切换class

    1,文件内容 ----//为item添加不存在的属性,需要使用vue提供的Vue.set( object, key, value )方法.  看详解:https://cn.vuejs.org/v2/a ...

  8. windowsclient开发--为你的client进行国际化

    之前博客讲过函数: GetUserDefaultUILanguage Returns the language identifier for the user UI language for the ...

  9. winform 操作注册表提示没有权限解决办法

    1.打开VS2005.VS2008.VS2010.VS2012.VS2013.VS2015工程,查看工程文件夹中的Properties文件夹下是否有app.manifest这个文件:如没有,按如下方式 ...

  10. 如何解决安装VMware后郑广电宽带客户端不能登录的问题?

    如何解决安装VMware后郑广电宽带客户端不能登录的问题? 问题:安装VMware后,郑广电宽带客户端不能登录,提示:“不允许代理上网”. 解决:将VMware的虚拟网卡(VMnet1和VMnet8) ...