精华内容
下载资源
问答
  • 【反射】java绝对路径获取文件

    千次阅读 2017-12-04 19:32:51
    1. Class.getResourceAsStream(String path)  用法:AAA.class.getResourceAsStream("a.txt")  path 不以'/'开头时默认是从此类所在的...其只是通过path构造一个绝对路径,最终还是由ClassLoader获...

     

    1. Class.getResourceAsStream(String path)          

         用法:AAA.class.getResourceAsStream("a.txt") 

    path 不以'/'开头时默认是从此类所在的包下取资源,以'/'开头则是从ClassPath(Src根目录)根下获取。
    其只是通过path构造一个绝对路径,最终还是由ClassLoader获取资源。
     

    2. Class.getClassLoader().getResourceAsStream(String path)          

         用法:AAA.class.getClassLoader().getResourceAsStream("a.txt")  

    默认则是从ClassPath根下获取,path不能以'/'开头,最终是由ClassLoader获取资源。
     
    3. ServletContext. getResourceAsStream(String path)
    默认从WebAPP根目录下取资源,Tomcat下path是否以’/'开头无所谓,当然这和具体的容器实现有关。
    如果是在SRC 下,可以用第一种方式,如果是在WEB环境下,用/WEB-INF/classes/xxx.file 应该是可以的,但是这个我没有试过。

         用法:首先获得一个ServletContext对象,获取方式参考博文 http://blog.csdn.net/sinat_36710456/article/details/78731248

    然后调用ServletContext的getResourceAsStream(String path)方法来获得InputStream输入流。

     

    说明:AAA是一个java类

    分析

         首先,调用对象的class()静态属性是获得当前对象的类类型,然后在类类型上调用getClassLoader()方法是得到当前类型的类加载器,最后调用了类加载器的getResourceAsStream()方法来加载资源。

     

    展开全文
  • 由于自己一知半解,所以在开发的过程中,涉及到Java文件路径的问题,在不同的系统中,不同IDE,不同的项目环境下,总是犯错误,每次通过百度搜索,动手实验,最终能够解决问题。但是,再下次遇到问题的时候,...

    由于自己一知半解,所以在开发的过程中,涉及到Java文件路径的问题,在不同的系统中,不同IDE,不同的项目环境下,总是犯错误,每次通过百度搜索,动手实验,最终能够解决问题。但是,再下次遇到问题的时候,依然如故!而网络上的文章也是良莠不齐,复制粘贴,没有很好的梳理这个问题。所以,我自己想尝试把这个问题讲清楚。

    一、开发环境

    首先,我们要保持一致我们的开发环境,否则,一切都无从谈起。

    1.操作系统:

    在Windows中,路径分隔符是反斜杠 \ ,在Linux中,路径分隔符是斜杠 / 。

    Linux是不支持反斜杠做路径分隔符。windows系统做了兼容,支持使用斜杠做路径分隔符。

    如果使用File.separator,那么会根据当前运行程序的机器生成分隔符,这对于在windows上开发测试阶段是不适用的。

    所以,我的经验是在开发中,全部用斜杠 / 做分隔符。

    2. IDE:

    Eclipse和IDEA中,对于相对路径的处理是不同的,我不想在IDE再劳神,所以开发中,一律使用绝对路径。这可以有效屏蔽IDE切换带来的风险,而且,使项目更健壮,对于项目迁移,外部环境,内部项目目录变换等等情况,都能更很好的适应这些变化。

    3.项目环境:

    这一块,其实就是屏蔽了外部环境影响之后,Java内部环境的细分了。暂时,可以分为两块:JavaSE,JavaWeb。我们下一部分开讲。

    二、正文

    我开发涉及到的目前就是JavaSE,JavaWeb两种环境下的路径的不同处理。

    1.JavaSE环境下:

    就是在普通的Java项目中:

    1.1. 通过使用Java的类加载器来获取编译后类的根目录,然后,以此为基础,获取此目录下的自己想要的路径:String path = this.getClass().getClassLoader().getResource("").getPath();

    System.out.println(path);

    注:此处的路径都是相对于类加载器的根目录而言的,所以,在getResource()方法的参数不能以斜杠开头。不过,这对于我们也没有什么影响,我们都是以此路径为基础,再后面继续使用的。

    1.2.这种方法,其实是上面方法的变种,是通过当前类编译后的路径为基准,底层依然使用该类的类加载器:

    //2.获取当前类的绝对路径String path2 = this.getClass().getResource("").getPath();

    System.out.println(path2);

    //3.获取当前类的类加载器的根目录,与第一种方法效果相同String path3 = this.getClass().getResource("/").getPath();

    System.out.println(path3);

    1.3.对上面的方法进一步延伸,我们直接找到类加载器,然后,去找绝对路径:String path4 = ClassLoader.getSystemClassLoader().getResource("").getPath();

    System.out.println(path4);

    String path5 = ClassLoader.getSystemResource("").getPath();

    System.out.println(path5);

    1.4.这种方法,需要前置条件,就是要先有一个File的对象,获取到的项目的根路径,这与前面的方法的结果是不同的:File file = new File("");

    String canonicalPath = file.getCanonicalPath();

    System.out.println(canonicalPath);

    String absolutePath = file.getAbsolutePath();

    System.out.println(absolutePath);

    1.5.根据系统属性,获取项目的根路径:String property = System.getProperty("user.dir");

    System.out.println(property);

    2.JavaWeb环境下:

    通过使用ServletContext类对象来获取项目根目录的绝对路径:ServletContext servletContext = this.getServletContext();

    String realPath = servletContext.getRealPath("");

    三、最佳实践

    1. 路径分隔符统一使用斜杠;

    2. 路径统一使用绝对路径;

    展开全文
  • java通过路径获取项目中的文件的方法,也就是获取文件路径的方法。 一、需求: 要在controller类方法中使用项目中的文件(具体事例:使用模板文件生成新的文档) 二、文件位置: 文件应放在web项目的...

    java类通过路径获取项目中的文件的方法,也就是获取文件路径的方法。

    一、需求:

    要在controller类方法中使用项目中的文件(具体事例:使用模板文件生成新的文档)


    二、文件位置:

    文件应放在web项目的resource目录下 (例子:model.docx文件)

    三、获取文件路径的方法

    this.getClass().getClassLoader().getResource("/model.docx").getPath();




    打印地址路径:
    E:\work\uz\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\web\WEB-INF\classes\model.docx



    注意:1、文件位置不能放在web项目的src下,src是用来加载jsp用的,放在src下无法找到文件。
       2、我试过这种方法,但时获取不到request.getSession().getServletContext().getRealPath("/") 因为此方法是  获取tomcat的


    谢谢观看!
       
     
    展开全文
  • 这里是例子:如何通过java中传递相对路径获取文件?CODE:public class somex {public static void main {String fileName = System.getProperty("user.dir"); File file = new File(fileName + "../../xm...

    我想了解“如何通过传递文件或文件夹的相对路径来获取文件?” 。这里是例子:如何通过在java中传递相对路径来获取文件?

    CODE:

    public class somex {

    public static void main {

    String fileName = System.getProperty("user.dir");

    File file = new File(fileName + "../../xml_tutorial/sample.xlsx");

    System.out.println(file.getCanonicalPath());

    }

    }

    >>>>

    在这里,我知道该文件的位置,所以我能够通过正确的相对路径。并设法打印文件路径。我删除了“sample.xlsx”并执行了上面的代码;如果没有失败,它会为我提供路径名称,并且它与文件存在时的路径相同(即在删除之前)。怎么可能?我在这里期待EXCEPTION。为什么它不抛出异常?

    二,我想为文件名使用正则表达式,比如:“../../xml_tutorial/samp.*”。但是这并不能完成这项工作,它给了我IOException。为什么它无法识别文件sample.xlsx? (注:这是当文件中存在和一百precent确保只有一个文件名为“sample.xlsx”)

    2013-05-04

    MKod

    +0

    1.您可以使用file.exists()方法检查文件。 2. java不支持通配符,你可以在这里找到答案http://stackoverflow.com/questions/794381/how-to-find-files-that-match-a-wildcard-string-in-java –

    2013-05-04 14:05:46

    +1

    请问**每个问题有一个**问题。 –

    2013-05-04 14:07:01

    展开全文
  • 从标题中也可以知道这篇是写通过递归去遍历去获取所有文件路径文件名称,下面我就说说遍历获取所有文件路径和名称的思路: 第一步:将字符串路径转换为文件格式,再传入函数进行遍历; 第二步:遍历 files的...
  • java通过文件路径获取文件名

    万次阅读 2010-08-05 13:27:00
    java通过文件路径获取文件名 file.getName()
  • 先看看我设置的文件目录结构,如下图所示: ___Java Build Path的设置如下图所示, 主要看build project之后的文件输出目录: ___在Java中有两种方式可以获取文件路径通过下面的测试代码看看它们的不同:12345...
  • java"]DocumentBuilder dombuilder=domfac.newDocumentBuilder(); InputStream is=new FileInputStream(ElongHotelsFacadeImpl.class.getResource("/") + "/...
  • 一般为了避免windows系统和linux系统之间路径分隔符的...如果需要分割路径获取文件(夹)名,会用到String.split(String regex)方法,直接使用File.separator作为参数会抛异常String separator = File.separator;S...
  • 文件路径问题处理方法:1把配置文件放到src foldersrc folder 下的文件可以通过MainTest.class.getClassLoader().getResource("decompress_shutdown.bat")方法获取到。2、通过../处理路径package ...
  • //验证文件夹是否存在,不存在 则创建 String dirPath = filePath.substring(0, filePath.lastIndexOf("/")); File fileDir = new File(dirPath); if (!fileDir.exists()) { ...
  • IO流是java在执行过程中整体执行的核心元素,如何...文件目录:文件夹,管理文件,linux下有权限、操作符、用户组、用户等路径分割符:表示windows系统文件目录分割符/表示mac/linux下的路径分割符java代码在windo...
  • java web项目中 获取resource路径下的文件路径:public GetResource{String path = GetResource.class.getClassLoader().getResource("xx/xx.txt").getPath();}说明:GetResource是当前的类;SpringBoot读取JSON文件...
  • java获取FTP路径文件的InputStream

    千次阅读 2019-11-19 15:16:42
    java获取FTP路径文件的InputStreamjava获取FTP路径文件的InputStream java获取FTP路径文件的InputStream 因为场景需求,要从前置机连接的另一台数据服务器上通过FTP获取大量图片转成一个pdf并打印。因此需要获取图片...
  • 1. java获取某个文件夹的路径怎么写File类有两个常用方法可以得到文件路径一个是:getCanonicalPath(),另一个是:getAbsolutePath(),可以通过File类的实例调用这两个方法例如file.getAbsolutePath()其中file是File...
  • 1 问题描述通过源码运行时,一般使用如下方式读取资源文件:String str = "1.jpg";资源文件与源码文件放在同一目录下,或者拥有同一父级目录:String str = "a/b/1.jpg";这样直接编译运行没有问题,但是打成JAR包后...
  • JAVA通过反射获取文件的绝对路径 (旧方法)FileReader reader = new FileReader(“src\reflection\Test.properties”); 这种方式的路径缺点是:移植性差,在IDEA中默认的当前路径是project的根 这个代码离开了...
  • 我必须从URI获取路径并从路径获取URI . 前者:/*** Gets the corresponding path to a file from the given content:// URI* @param selectedVideoUri The content:// URI to find the file path...
  • 此外,我们可以通过java中的-cp指定程序的classpath。但是,在程序中我们如何获得相应的文件呢?当然,我们可以使用绝对路径(这种方式让我们的程序无法移植),但是最有用的是使用getResource()和getR
  • 问大家一个问题,列如我在前端可以通过htpps://10.62.192.31943/eam/icons/domain/domain-12.jpg这个url来访问获取这张图片,但是这个...不是后台的真实路径,请问我怎么通过这个获取文件流,之前试过用url那种方式不行
  • 通过类加载器的getResource方法获取资源的文件需要在resource路径下。因为getResource会在classes目录下寻找文件。而/src/main/java和/src/main/resource都会将文件编译到classes目录下。 @Test public void test5()...
  • 1 问题描述 通过源码运行时,一般使用如下方式读取资源文件:String str = "1.jpg";资源文件与源码文件放在同一目录下,或者拥有同一父级目录:String str = "a/b/1.jpg";这样直接编译运行没有问题,但是打成JAR包后...
  • 浅谈java获取文件路径

    2021-03-08 09:27:30
    1,在开发Web方面的应用时, 经常需要获取 服务器中当前WebRoot的物理路径。 如果是Servlet , Action , Controller, 或则Filter , Listener , 拦截器等相关类时, 我们只需要获得ServletContext, 然后通过ServletC....
  • java获取文件路径

    2010-11-13 16:16:49
    说明:相对路径(即不写明时候到底相对谁)均可通过以下方式获得(不论是一般的java项目还是web项目) String relativelyPath=System.getProperty("user.dir"); 上述相对路径中,java项目中的文件是相对于...
  • java 获取文件相对路径

    万次阅读 2019-05-06 19:10:28
    1、首先需要在maven工程下的resources文件夹下添加文件 2、通过右边代码获取路径String fileName = dataPreProcess.class.getClassLoader().getResource("char_to_id.txt").getPath(); ...
  • 以下示例显示如何通过FileUtils类的FileUtils.sizeofDirectory(File Name)方法获取目录的大小。package com.yiibai;import java.io.File;import org.apache.commons.io.FileUtils;public class DirectorySize {...
  • Java获取静态资源文件路径 ​ 开发中经常会有文件相关的操作,比如说文件的查找,文件的存储。但是在使用中往往会因为路径问题耽误大量的开发时间。在实际中常常通过File file = new File(“c://a.txt”)方式来使用...
  • java项目配置文件路径获取

    千次阅读 2017-09-21 11:09:42
    public class GetFileDemo { public static void GetFile() { InputStream in; try { /**本地文件路径src/main/resources/...* 服务器上不适用次路径 需要通过环境变量获取 System.getenv("CONF"); * 在服务器上设

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,438
精华内容 575
关键字:

java通过路径获取文件

java 订阅