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)一样的结果
分享到:
相关推荐
Java Resource路径整理总结 Java Resource路径整理总结是 Java 编程语言中一个重要的知识点,主要介绍了 Java 中 Resource 路径的整理总结,旨在帮助开发者更好地理解和使用 Resource 路径。 Java Resource 路径...
7. **NIO.2 API**:Java NIO.2引入了`java.nio.file.Paths`和`java.nio.file.Path`类,提供了更现代、更强大的路径操作。例如,`Paths.get("relative/path")`可以创建一个`Path`对象,它支持更多高级操作,如`...
### JAVA 获取各种路径总结 在Java开发中,特别是在Web应用开发中,经常需要获取不同类型的路径,例如:当前Web应用的路径、特定文件的真实路径等。本文将详细讲解如何通过不同的方式来获取这些路径。 #### JSP中...
- **Resource**: 在Java中通常指的是类路径下的文件,如配置文件、图片等非可执行代码的文件。 - **URL**: Uniform Resource Locator 的缩写,即统一资源定位符,是一种标识Internet资源位置的方式。 #### 三、主要...
### Java中File的相对路径与绝对路径总结 在Java Web开发过程中,经常需要处理文件的读写操作,尤其是在运行时获取配置文件、动态加载对象等情况。对于这些需求,理解和掌握文件的相对路径与绝对路径至关重要。 ##...
本篇总结将从多个角度介绍Java中获取路径的方法。 ### 1. 获取系统属性路径 Java提供了一种通过系统属性获取路径的方式,这种方式简单且在多数环境下都能工作。 ```java // 获取用户目录路径 String userHome = ...
在 Java 项目中,获取相对路径可以使用 `getResource` 方法。这个方法可以返回当前类的相对路径。在静态方法中,可以使用 `Test.class.getResource("").getPath()`,而在非静态方法中,可以使用 `this.getClass()....
以下是对Java Web中相对路径与绝对路径问题的深入总结: ### 一、路径概念与标准 #### 1. URL与URI URL(Uniform Resource Locator)统一资源定位符,是一种用于标识网络上资源位置的标准格式,如`...
2. **类路径与资源路径**:理解类路径(ClassPath)的概念,知道如何设置类路径以便正确加载资源,是Java开发的基础。资源路径通常是相对于类路径根的路径。 3. **使用ClassLoader加载资源**:`ClassLoader`可以...
2. **使用 `FileTest.class.getResource("/")`**:该方法返回当前classpath的绝对URI路径,例如:`file:/D:/java/eclipse32/workspace/jbpmtest3/bin/`。 3. **使用 `Thread.currentThread().getContextClassLoader...
总结,Java路径问题的解决方案涉及类路径设置、自定义类加载器以及利用构建工具和IDE。理解并掌握这些概念对于开发和调试Java应用程序至关重要。在遇到问题时,记得检查类路径设置,检查类加载器的行为,并参考`...
### Java中的绝对路径与相对路径 在Java编程中,路径管理是进行文件操作的重要组成部分,尤其是在Web应用开发中。本文将详细介绍如何在Java中获取不同类型的路径,包括Web服务器下的文件路径、本地路径以及相对路径...
在 Java 编程的 Class 中,我们可以使用 `Class.getResource()` 方法来获取相对路径和绝对路径。例如,我们可以使用 `FileTest.class.getResource("")` 来获取当前类的相对路径,使用 `FileTest.class.getResource(...
2. `FileTest.class.getResource("/")`:这个方法会返回当前classpath的绝对URI路径,即`file:/D:/java/eclipse32/workspace/jbpmtest3/bin/`,这是项目根目录的位置。 3. `Thread.currentThread()....
在Java开发中,路径处理是常见且重要的环节,尤其是在Web应用中,正确处理各种路径能够确保资源的准确访问和系统的稳定运行。以下是对标题“JAVA中获取各种路径”及其描述和部分内答所提及的几种路径获取方法的详细...
Java使用路径通配符加载Resource与profiles配置使用详解 本文主要介绍了Java使用路径通配符加载Resource与profiles配置使用详解。通过示例代码,详细介绍了Java使用路径通配符加载Resource与profiles配置的使用方法...
### Java(Web)中相对路径与绝对路径问题总结 #### 基本概念理解 在Java Web开发中,路径的概念非常重要,因为它们直接影响到资源的加载和处理。路径分为两种类型:绝对路径和相对路径。 **绝对路径**是指文件或...
2. **命令行参数**:在运行Java程序时,可以使用`-classpath`或`-cp`选项来指定类路径。 3. **IDE配置**:大多数集成开发环境(IDE),如Eclipse和IntelliJ IDEA,允许你在项目设置中指定类路径。 #### 三、资源定位...
#### 二、Java路径类型 Java中使用的路径主要分为两大类:绝对路径与相对路径。具体来说,又可细分为以下四种: 1. **URI形式的绝对资源路径**:例如 `file:/D:/java/eclipse32/workspace/jbpmtest3/bin/aaa.b`。...