`
enetor
  • 浏览: 188514 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Java Resource路径总结二

 
阅读更多

Class.getResource()与Class.getResourceAsStream()方法,但很多人还是不太懂它的用法,因为很多人(比如 不久前的我)都不知道应该传怎么样的参数给它,当然,有些人己经用得如火纯青,这些人是不需要照顾的,在此仅给不会或者还不是很熟的人解释一点点。


比如我们有以下目录

|--project

    |--src

        |--javaapplication

            |--Test.java

            |--file1.txt

        |--file2.txt

    |--build

        |--javaapplication

            |--Test.class

            |--file3.txt

        |--file4.txt



在上面的目录中,有一个src目录,这是JAVA源文件的目录,有一个build目录,这是JAVA编译后文件(.class文件等)的存放目录

那么,我们在Test类中应该如何分别获得

file1.txt  file2.txt  file3.txt  file4.txt这四个文件呢?


首先讲file3.txt与file4.txt

file3.txt:

方法一:File file3 = new File(Test.class.getResource("file3.txt").getFile());

方法二:File file3 = new File(Test.class.getResource("/javaapplication/file3.txt").getFile());

方法三:File file3 = new File(Test.class.getClassLoader().getResource("javaapplication/file3.txt").getFile());



file4.txt:

方法一:File file4 = new File(Test.class.getResource("/file4.txt").getFile());

方法二:File file4 = new File(Test.class.getClassLoader().getResource("file4.txt").getFile());



很好,我们可以有多种方法选择,但是file1与file2文件呢?如何获得?

答案是,你只能写上它们的绝对路径,不能像file3与file4一样用class.getResource()这种方法获得,它们的获取方法如下

假如整个project目录放在c:/下,那么file1与file2的获取方法分别为

file1.txt

方法一:File file1 = new File("c:/project/src/javaapplication/file1.txt");

方法二:。。。没有



file2.txt

方法一:File file2 = new File("c:/project/src/file2.txt");

方法二:。。。也没有



总结一下,就是你想获得文件,你得从最终生成的.class文件为着手点,不要以.java文件的路径为出发点,因为真正使用的就是.class,不会拿个.java文件就使用,因为java是编译型语言嘛



至 于getResouce()方法的参数,你以class为出发点,再结合相对路径的概念,就可以准确地定位资源文件了,至于它的根目录嘛,你用不同的 IDE build出来是不同的位置下的,不过都是以顶层package作为根目录,比如在Web应用中,有一个WEB-INF的目录,WEB-INF目录里面除 了web.xml文件外,还有一个classes目录,没错了,它就是你这个WEB应用的package的顶层目录,也是所有.class的根目录 “/”,假如clasaes目录下面有一个file.txt文件,它的相对路径就是"/file.txt",如果相对路径不是以"/"开头,那么它就是相 对于.class的路径。。



还有一个getResourceAsStream()方法,参数是与getResouce()方法是一样的,它相当于你用getResource()取得File文件后,再new InputStream(file)一样的结果

分享到:
评论
1 楼 hbiao68 2015-02-21  
写得很好,受教了

相关推荐

    Java Resource路径整理总结

    Java Resource路径整理总结 Java Resource路径整理总结是 Java 编程语言中一个重要的知识点,主要介绍了 Java 中 Resource 路径的整理总结,旨在帮助开发者更好地理解和使用 Resource 路径。 Java Resource 路径...

    Java相对路径总结

    7. **NIO.2 API**:Java NIO.2引入了`java.nio.file.Paths`和`java.nio.file.Path`类,提供了更现代、更强大的路径操作。例如,`Paths.get("relative/path")`可以创建一个`Path`对象,它支持更多高级操作,如`...

    JAVA获取各种路径总结

    ### JAVA 获取各种路径总结 在Java开发中,特别是在Web应用开发中,经常需要获取不同类型的路径,例如:当前Web应用的路径、特定文件的真实路径等。本文将详细讲解如何通过不同的方式来获取这些路径。 #### JSP中...

    java文件路径获取

    - **Resource**: 在Java中通常指的是类路径下的文件,如配置文件、图片等非可执行代码的文件。 - **URL**: Uniform Resource Locator 的缩写,即统一资源定位符,是一种标识Internet资源位置的方式。 #### 三、主要...

    java中File的相对路径与绝对路径总结

    ### Java中File的相对路径与绝对路径总结 在Java Web开发过程中,经常需要处理文件的读写操作,尤其是在运行时获取配置文件、动态加载对象等情况。对于这些需求,理解和掌握文件的相对路径与绝对路径至关重要。 ##...

    总结一下java获取路径几种途径

    本篇总结将从多个角度介绍Java中获取路径的方法。 ### 1. 获取系统属性路径 Java提供了一种通过系统属性获取路径的方式,这种方式简单且在多数环境下都能工作。 ```java // 获取用户目录路径 String userHome = ...

    java项目中获取路径详解

    在 Java 项目中,获取相对路径可以使用 `getResource` 方法。这个方法可以返回当前类的相对路径。在静态方法中,可以使用 `Test.class.getResource("").getPath()`,而在非静态方法中,可以使用 `this.getClass()....

    java Web 中相对路径绝对路径问题总结

    以下是对Java Web中相对路径与绝对路径问题的深入总结: ### 一、路径概念与标准 #### 1. URL与URI URL(Uniform Resource Locator)统一资源定位符,是一种用于标识网络上资源位置的标准格式,如`...

    Java Resource

    2. **类路径与资源路径**:理解类路径(ClassPath)的概念,知道如何设置类路径以便正确加载资源,是Java开发的基础。资源路径通常是相对于类路径根的路径。 3. **使用ClassLoader加载资源**:`ClassLoader`可以...

    Java路径问题最终解决方案之一.

    2. **使用 `FileTest.class.getResource("/")`**:该方法返回当前classpath的绝对URI路径,例如:`file:/D:/java/eclipse32/workspace/jbpmtest3/bin/`。 3. **使用 `Thread.currentThread().getContextClassLoader...

    java路径解决方案

    总结,Java路径问题的解决方案涉及类路径设置、自定义类加载器以及利用构建工具和IDE。理解并掌握这些概念对于开发和调试Java应用程序至关重要。在遇到问题时,记得检查类路径设置,检查类加载器的行为,并参考`...

    java绝对路径和相对路径

    ### Java中的绝对路径与相对路径 在Java编程中,路径管理是进行文件操作的重要组成部分,尤其是在Web应用开发中。本文将详细介绍如何在Java中获取不同类型的路径,包括Web服务器下的文件路径、本地路径以及相对路径...

    java中相对路径与绝对路径的问题

    在 Java 编程的 Class 中,我们可以使用 `Class.getResource()` 方法来获取相对路径和绝对路径。例如,我们可以使用 `FileTest.class.getResource("")` 来获取当前类的相对路径,使用 `FileTest.class.getResource(...

    java项目相对路径与绝对路径问题分析

    2. `FileTest.class.getResource("/")`:这个方法会返回当前classpath的绝对URI路径,即`file:/D:/java/eclipse32/workspace/jbpmtest3/bin/`,这是项目根目录的位置。 3. `Thread.currentThread()....

    JAVA中获取各种路径

    在Java开发中,路径处理是常见且重要的环节,尤其是在Web应用中,正确处理各种路径能够确保资源的准确访问和系统的稳定运行。以下是对标题“JAVA中获取各种路径”及其描述和部分内答所提及的几种路径获取方法的详细...

    Java使用路径通配符加载Resource与profiles配置使用详解

    Java使用路径通配符加载Resource与profiles配置使用详解 本文主要介绍了Java使用路径通配符加载Resource与profiles配置使用详解。通过示例代码,详细介绍了Java使用路径通配符加载Resource与profiles配置的使用方法...

    java(Web)中相对路径,绝对路径问题总结

    ### Java(Web)中相对路径与绝对路径问题总结 #### 基本概念理解 在Java Web开发中,路径的概念非常重要,因为它们直接影响到资源的加载和处理。路径分为两种类型:绝对路径和相对路径。 **绝对路径**是指文件或...

    Java路径问题

    2. **命令行参数**:在运行Java程序时,可以使用`-classpath`或`-cp`选项来指定类路径。 3. **IDE配置**:大多数集成开发环境(IDE),如Eclipse和IntelliJ IDEA,允许你在项目设置中指定类路径。 #### 三、资源定位...

    Java路径问题最终解决方案之一.txt

    #### 二、Java路径类型 Java中使用的路径主要分为两大类:绝对路径与相对路径。具体来说,又可细分为以下四种: 1. **URI形式的绝对资源路径**:例如 `file:/D:/java/eclipse32/workspace/jbpmtest3/bin/aaa.b`。...

Global site tag (gtag.js) - Google Analytics