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. javascript中的this在不同场景下的区别

    javascript在初版的设计上存在失误,导致了这门语言在使用时,经验型写法并不能得到像其它几个流行语言一样预期.其中的this的使用就是一个典型. this在javascript中是由解释器注入的 ...

  2. rocketmq 源码

    https://github.com/YunaiV/incubator-rocketmq

  3. 跟Python打包相关的一些文章

    6 things I learned about setuptools Python 101: easy_install or how to create eggs « The Mouse Vs. T ...

  4. Kylin 与 Spark SQL相比,有哪些差异和优势?

    SparkSQL本质上是基于DAG模型的MPP.而Kylin核心是Cube(多维立方体).关于MPP和Cube预处理的差异,重复如下: > MPP [1] 的基本思路是增加机器来并行计算,从而提 ...

  5. JVM 内部原理(三)— 基本概念之类文件格式

    JVM 内部原理(三)- 基本概念之类文件格式 介绍 版本:Java SE 7 每位使用 Java 的程序员都知道 Java 字节码在 Java 运行时(JRE - Java Runtime Envi ...

  6. c# 使用GDAL处理大图

    注意问题: 1.GDAL 使用官网生成好的dll,必须把Bin目录下的dll一并加到执行目录下去,否则会出错.  2. 用环境变量设置引用路径可以避免一大堆dll放一起.代码如下: /// <s ...

  7. Python之获取微信好友信息

    save_info.py: #!/usr/bin/python # -*- coding: UTF-8 -*- import itchat import pickle itchat.auto_logi ...

  8. 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 ...

  9. Zookeeper+Kafka集群部署

    Zookeeper+Kafka集群部署 主机规划: 10.200.3.85  Kafka+ZooKeeper 10.200.3.86  Kafka+ZooKeeper 10.200.3.87  Kaf ...

  10. 提升linux下TCP服务器并发连接数(limit)

    https://cloud.tencent.com/developer/article/1069900 1.修改用户进程可打开文件数限制   在Linux平台上,无论编写客户端程序还是服务端程序,在进 ...