- 浏览: 543267 次
- 性别:
- 来自: 湖南娄底
文章分类
- 全部博客 (252)
- C#资料 (0)
- java资料 (22)
- 数据库资料 (0)
- Java :开发中遇到的问题 (4)
- 书写属于我的人生 (6)
- spring (6)
- hibernate (16)
- struts (17)
- SSH (5)
- Linux操作系统 (1)
- Ext (5)
- Jquery (9)
- Tomcat部署出错 (2)
- xml (5)
- JSON (5)
- javascript 专题 (5)
- 开发环境配置 (2)
- web 开发 (27)
- Eclipse (7)
- Integration (1)
- 解决方案搜罗 (7)
- 网站收藏 (8)
- 测试框架 (1)
- iframe 专题 (6)
- JSTL (2)
- 各种插件收集 (2)
- 权限设计模型探讨 (1)
- DWR (1)
- log4j (3)
- java (11)
- java 格式化 (1)
- 软件工程 (2)
- 乱码专题 (1)
- UML (4)
- java 设计模式 篇 (1)
- 用法收集 (0)
- sourceforge apache solutions (2)
- Struts2 + JPA + Spring 开发 (1)
- 自定义工具箱 (0)
- IDE (4)
- opencms (1)
- jeecms (1)
- ant (0)
- maven (2)
- 数据库连接池 (0)
- spring MVC (0)
- android (1)
- web-server (1)
- iphone-开发环境 (1)
- iphone-软件开发 (6)
- iPhone-软件设计 (1)
- iphone-应用 (3)
- iPhone-设置 (2)
- iphone-软件开发-设计模式篇 (0)
- iphone-软件开发-OC基础 (9)
- iphone-软件开发- UI篇 (9)
- iphone-软件开发-工具类篇 (1)
- iphone-软件开发-第三方篇 (0)
- iphone-软件开发-特效篇 (2)
- iphone-软件开发-动画篇 (1)
- oracle (1)
- Java-Security (0)
- Three20 UI (1)
- IOS-HOW-TO-专题 (1)
- Mark-Develope Issues (1)
- iphone-软件开发- 资料参考篇 (1)
- C 语言-基本语法 (0)
- Java Servlet (2)
- Eclipse optimization (1)
- IOS Basic (0)
- ecl (0)
- FRONT-HTML (0)
- FRONT-JS (0)
- PHP (0)
最新评论
-
qq_29862421:
[[color=brown]color=yellow][url ...
java 上传图片同时获得图片的宽和高 -
hhb19900618:
NSString <==> NSNumber 之前 ...
OC 常用数据类型之间的转换 -
baohuan_love:
果然能解决问题,感谢分享
Tomcat Error Page配置 与 Error Page在IE下不能转发的问题 -
唐丽梅6313:
很细致。。
键盘样式风格有关设置-iOS开发 -
olived:
哥哥,为什么我的没有破解成功,总是提示许可文件丢失!!QQ:3 ...
[软件测试解决方案] soapUI 4.0.1破解方法
《转载》
用JAVA获取文件,听似简单,但对于很多像我这样的新人来说,还是掌握颇浅,用起来感觉颇深,大常最经常用的,就是用JAVA的File类,如要 取得c:/test.txt文件,就会这样用File file = new File("c:/test.txt");这样用有什么问题,相信大家都知道,就是路径硬编码,对于JAVA精神来说,应用应该一次成型,到处可用,并且 从现实应用来讲,最终生成的应用也会部署到Windows外的操作系统中,对于linux来说,在应用中用了c:/这样的字样,就是失败,所以,我们应该 尽量避免使用硬编码,即直接使用绝对路径。
在Servlet应用中,有一个getRealPath(String str)的方法,这个方法尽管也可以动态地获得文件的路径,不秘直接手写绝对路径,但这也是一个不被建议使用的方法,那么,我们有什么方法可以更好地获得文件呢?
那就是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 上传图片同时获得图片的宽和高
2012-02-01 19:00 4526java 上传图片同 ... -
Java实现的拦截器
2012-01-10 09:56 1304Java实现的拦截器 拦截 ... -
Tomcat 6中配置SSL双向认证
2012-01-09 20:58 0参考资料:http://wangking717.ite ... -
使用exe4j打包jar生成exe常用设置
2012-01-07 22:49 1086使用exe4j打包jar生成exe常用设置 ... -
字符串工具箱
2011-12-25 21:01 1018import java.io.File; import ja ... -
Java创建、重命名、删除文件和文件夹
2011-12-25 21:00 7075Java的文件操作太基础, ... -
JAVA 正则表达式
2011-12-03 22:37 795在Sun的Java JDK 1.40版本中 ... -
java 格式化字符串输出
2011-11-12 10:46 1296输出指定格式的字符串: Java代 ... -
java中实现换行的几种方法
2011-11-12 10:22 48251.使用java中的转义符"\r\n&quo ... -
java 访问修饰符
2011-11-06 12:04 834private package-private 只可以在同一 ... -
java集合框架
2011-10-12 08:10 866待续。。。 -
java中的io系统总结(转)
2011-10-09 09:02 948java中的io中的(input/outp ... -
属性文件的读写
2011-09-17 23:06 927附件中包含:属性文件的读写操作! -
javassist:增强型的java反射工具,获取方法参数名,获取方法参数标注值
2011-09-03 14:24 5057java的反射是不能获取方法的参数名的。比如: publi ... -
quartz cronExpression详解<转载>
2011-08-18 20:14 1025quartz cronExpression详解 2009 ... -
java获取真实客户端ip地址 <转载>
2011-08-12 11:35 1918在JSP里,获取客户端的IP地址的方法是:request.ge ... -
求数组中最小的不重复的整数
2011-03-19 11:23 1003public class minNoRepeatNum{ ... -
WEB计时器的实现——Timer(转载)
2010-10-21 07:55 1719Java定时器(java.util.Timer)有定时触发计划 ... -
依赖注入的几种实现类型
2010-10-18 10:28 887Type1 接口注入 我们常 ... -
spring 中Pointcut的定义(转)
2010-10-18 09:47 1576在Spring 2.0中,Pointcut的定义包括两个部分 ...
相关推荐
本文将详细介绍Java中获取文件路径的各种方法及其应用场景,帮助开发者更好地理解和掌握这些技巧。 #### 二、基本概念 在深入讨论之前,我们需要了解几个基本概念: - **Classpath**: 是Java运行环境的一个重要...
本篇文章将详细探讨Java提供的两种主要方法:`Class.getResource`和`Class.getResourceAsStream`,用于加载类路径下的资源文件。 首先,`Class.getResource`方法返回一个`URL`对象,它表示资源的位置。这个方法接受...
这是因为通过class.getResource()方法在IDEA中运行的路径和生成jar包获取的的路径是不同的。打成jar包后,获取图片的路径中有"xxx.jar!"这里面的内容是不能够被操作系统识别出来的,因此直接通过路径来获取文件是不...
通过上述介绍可以看出,在Java中获取文件路径的方法多种多样,每种方法适用于不同的场景。掌握这些技巧对于编写高效、稳定的Java应用程序至关重要。在实际开发过程中,可以根据具体需求选择最适合的方法来获取文件...
Class.class.getClass().getResource("/").getPath() ``` 输出如 `/D:/TEST/WebRoot/WEB-INF/classes/pack/`。 2. **获取工程的路径**: ```java System.getProperty("user.dir") ``` 输出如 `D:\TEST`。 ...
本文将深入探讨Java中获取文件路径的多种方法,以及这些方法背后的原理。 ### 一、Java中的路径类型 #### 绝对路径 绝对路径是指从根目录开始,到目标文件或目录的完整路径。例如,在Windows系统中,`C:\Users\...
当你需要获取与类相关的资源文件的绝对路径时,可以使用 `Class.getResource()` 或 `Class.getResourceAsStream()` 方法。这些方法返回一个 `java.net.URL` 对象,可以通过调用 `getPath()` 来获取路径字符串。例如...
Guava提供了一个方便的`getResource`方法,可以简化资源文件的读取。 ```java import com.google.common.io.Resources; import java.io.BufferedInputStream; import java.io.IOException; import java.net....
- 如果你的资源文件是Java项目的一部分,你可以在类路径中直接导入它们,然后使用`getClass().getResource()`或`getClass().getResourceAsStream()`方法。 4. 文件系统访问 - 如果资源文件位于文件系统的某个位置...
在这里,`ClassPathResource`实例化时传入资源路径,然后调用`getInputStream`方法获取输入流。 以上四种方法都能有效地读取`.properties`文件。选择哪种方法主要取决于你的项目需求,如是否使用特定的框架,以及对...
首先,我们可以通过`java.lang.Class`类的`getResource`或`getResourceAsStream`方法来获取类路径中的资源文件路径。这两个方法都是在类路径中查找资源,返回一个URL对象,从中可以获取路径信息。例如,如果我们有一...
`Class.getResource` 方法允许我们通过类对象获取资源文件。这个方法返回一个 `URL` 对象,表示资源的位置。它会根据类路径查找资源,因此资源必须包含在类路径(classpath)中。 #### 示例代码: ```java public ...
你可以通过`Thread.currentThread().getContextClassLoader().getResource()`或`YourClass.class.getResource()`来获取`URL`对象,然后使用`InputStream`读取资源内容。例如: ```java URL resource = getClass()....
下面将详细介绍几种在Java中读取`.properties`配置文件的方法。 1. 使用`java.util.Properties`类 `Properties`类是Java提供的一种内置机制,用于处理属性列表。它继承了`Hashtable`类,提供了加载和保存属性列表...
接着,通过`URL`对象定位到"application.yml"文件,这里使用了`Test02.class.getClassLoader().getResource()`方法,它可以从类路径中找到资源文件。 ```java Yaml yaml = new Yaml(); URL url = Test02.class....
- 这些方法非常灵活,可以用于获取各种类型的资源文件路径。 通过以上介绍,我们可以看到,在Java开发中,无论是Web开发还是普通的Java应用程序开发,获取路径都是一个非常重要且实用的功能。掌握这些方法,可以...
- 使用`Class.getResource()`或`Class.getResourceAsStream()`方法: - `getResource()`返回一个`URL`对象,适合处理网络或磁盘上的资源。 - `getResourceAsStream()`返回一个`InputStream`,适用于读取二进制...
在Java编程中,路径是访问...如果要获取整个classpath的根目录,`FileTest.class.getResource("/")`或类似的方法更适合。理解并灵活运用这些方法,能帮助开发者有效地管理项目中的资源文件,避免因路径问题引发的错误。
Properties props = Resources.asCharSource(Resources.getResource("config.properties"), Charsets.UTF_8).readLines(new Properties()); String dbUrl = props.getProperty("db.url"); ``` 7. **处理JSON或...