`
maimode
  • 浏览: 412320 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java资源文件定位

阅读更多

程序中很多时候需要使用诸如配置文件等类似的资源文件,需要读入这些文件,获取其中的内容并在程序中使用。这就涉及到如何在程序中定位文件的问题。本文介绍java中常用的定位文件的方法。

 

1. 获取文件的URL

 

 

URL url = Main.class.getResource("te st.properties");

 或者

 

URL url = Main.class.getClassLoader().getResource("te st.properties");

 上面两个方法其实是一样的,都是调用ClassLoader的方法。

 

需要注意的是:URL是有编码方案的,通过上面的方法获得的url跟底层的编码方案有关系。注意资源文件名称te st.properties

 

这段代码在tomcat6下运行,得到的url是file:/D:/dev/workspace/AT/WebRoot/WEB-INF/classes/te st.properties

 

但是在tomcat7下运行,得到的url是file:/D:/dev/workspace/AT/WebRoot/WEB-INF/classes/te%20st.properties 空格被替换为%20这个地址不能直接作为File的参数去获得File对象的。

 

可以通过URLDecoder来对URL解码,以便得到我们在java环境下能够正常使用的url字符串。

URLDecoder decoder = new URLDecoder();
String nurl = decoder.decode(url.toString());

 上面的代码使用了被废弃的方法,jdk推荐使用带解码编码方式参数的解码方法,这里由于不清楚我们调用ClassLoader的getResource方法时是怎么给URL编码的(以后再详细了解),所以无奈使用了这个废弃的方法。

 

2. 获得输入流

 

比起获得文件的URL来说,我觉得,获得输入流的方式更加好些,因为这样避免了由于URL编码问题造成的不同环境下运行时的问题。

 

 

InputStream is = Main.class.getResourceAsStream("te st.properties");

 或者

InputStream is2 = Main.class.getClassLoader().getResourceAsStream("te st.properties");
 

这种方式,无论在什么环境下,都能得到此资源文件的输入流。

 

 

 

 

分享到:
评论

相关推荐

    java源码包---java 源码 大量 实例

     Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java源码...

    JAVA上百实例源码以及开源项目

     Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java源码...

    java源码包4

     Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java...

    java源码包3

     Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java...

    java源码包2

     Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java...

    JAVA上百实例源码以及开源项目源代码

     Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java源码...

    apktool 获取资源文件

    用于获取apk文件资源文件 将需要反编译的APK文件放到该目录下,打开命令行界面(运行-cmd) ,定位到apktool文件夹,输入以下命令:java -jar apktool.jar decode test.apk (命令中test.apk指的是要反编译的apk...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    Java 3DMenu 界面源码 5个目标文件 内容索引:Java源码,窗体界面,3DMenu Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都...

    JAVA_API1.6文档(中文)

    java.util.jar 提供读写 JAR (Java ARchive) 文件格式的类,该格式基于具有可选清单文件的标准 ZIP 文件格式。 java.util.logging 提供 JavaTM 2 平台核心日志工具的类和接口。 java.util.prefs 此包允许应用程序...

    apk2java工具

    2、apk反编译生成程序的源代码和图片、XML配置、语言资源等文件 如果是汉化软件,这将特别有用 步骤:下载上述反编译工具包,打开apk2java目录下的apktool1.4.1文件夹,内含三个文件:aapt.exe,apktool.bat,...

    JAVA语言程序设计【高清版】.pdf

    210 11.4.3 挂起线程 212 11.4.4 线程间的通信 212 习题 213 第12章 Java的网络功能 216 12.1 概述 216 12.1.1 基本概念介绍 216 12.1.2 使用InetAddress 217 12.2 统一资源定位器 218 12.2.1 统一...

    JAVA项目日志文件模版

    状态和性能信息:日志文件可以记录应用程序的状态和性能信息,如请求响应时间、数据库查询耗时、资源使用情况等。这些日志对于分析系统性能和优化应用程序非常有帮助。 安全审计:日志文件可以记录用户的操作行为、...

    Java 1.6 API 中文 New

    java.util.jar 提供读写 JAR (Java ARchive) 文件格式的类,该格式基于具有可选清单文件的标准 ZIP 文件格式。 java.util.logging 提供 JavaTM 2 平台核心日志工具的类和接口。 java.util.prefs 此包允许应用程序...

    Java核心技术II(第8版)

    10.7.1 定位资源包 10.7.2 属性文件 10.7.3 包类 10.8 一个完整的例子 第六章 高级Swing 6.1 列表 6.1.1 JList构件 6.1.2 列表模式 6.1.3 插入和移除值 6.1.4 值的绘制 6.2 表格 6.2.1 简单表格 6.2.2 表格模型 ...

    FirstJava2完全教材

    FirstJava2高效java/jsp编辑开发工具的配套教材. 这个工具是完全免费的Java/jsp开发工具FirstJava2,绿色软件,无需安装,主要给java初学者和一般的个人开发者使用,使...请输入关健词:FirstJava2 www.csdn.net 资源下载

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    Java 3DMenu 界面源码 5个目标文件 内容索引:Java源码,窗体界面,3DMenu Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都...

    java程序设计教程课件

    Java语言教程,共十一章。...10.2 使用URL定位资源 10.3 Socket通信 10.4 数据报通信 10.5 协议处理机 10.6 用Java实现加密 第11章 数据库编程 11.1 数据库基本理论 11.2 SQL和JDBC简介 11.3 数据库程序设计

    java api最新7.0

    java.util.jar 提供读写 JAR (Java ARchive) 文件格式的类,该格式基于具有可选清单文件的标准 ZIP 文件格式。 java.util.logging 提供 JavaTM 2 平台核心日志工具的类和接口。 java.util.prefs 此包允许应用程序...

Global site tag (gtag.js) - Google Analytics