程序中很多时候需要使用诸如配置文件等类似的资源文件,需要读入这些文件,获取其中的内容并在程序中使用。这就涉及到如何在程序中定位文件的问题。本文介绍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读取资源文件,特别是properties类型的文件。 资源文件通常存储在项目的类路径...
首先,理解资源文件的定位。在Java应用中,资源文件通常位于`src/main/resources`目录下(对于Maven或Gradle项目)。这些文件会被构建工具自动打包到最终的JAR或WAR文件中,以便于程序运行时访问。 1. **访问资源...
- **Classpath**: 是Java运行环境的一个重要概念,它指定了Java虚拟机(JVM)加载类和资源文件的路径。 - **Resource**: 在Java中通常指的是类路径下的文件,如配置文件、图片等非可执行代码的文件。 - **URL**: ...
本篇文章将深入探讨如何使用iText库在Java中实现PDF关键字定位。iText是一个强大的PDF处理库,它提供了丰富的API来创建、编辑和读取PDF文档。 首先,我们需要在项目中引入iText库。你提到的`itextpdf-5.5.6.jar`是...
10. **学习资源**:理解类文件格式的官方文档是《Java Virtual Machine Specification》,而深入学习`RandomAccessFile`可以查阅Java API文档。此外,相关的书籍和在线教程也能提供深入的理论和实践指导。 总之,...
不过,通过一些工具,如Java的jar打包命令,可以将多个类文件和依赖资源打包成一个.jar文件,模拟出类似C#的单文件执行效果。 在本例中,提供的"Java批处理执行.exe"可能是一个用于自动化Java编译过程的批处理脚本...
- **资源定位**:帮助开发者找到类文件在项目中的位置,对于大型项目尤其有用。 3. **常见查看工具** - **JAD (Java decompiler)**:一款广受欢迎的反编译器,可以将字节码转换为接近原始的Java源代码。 - **JD-...
1. **生成堆转储文件**:通过`jmap -dump:format=b,file=<filename> <pid>`命令,我们可以从运行中的Java进程生成一个heap dump文件,这个文件包含了Java堆内存的所有信息。 2. **查看堆概要**:`jmap -histo:live ...
主索引(INDEX.CHM)用于快速定位文件,而目录(TOC.PND)定义了文件的组织结构。此外,还有一个HTML内容文件列表(FILES.HHXT)以及一个或多个数据块(HHF)存储实际的HTML内容。 2. **Java库**:Java社区开发了...
- `java.net.URL`:用于表示统一资源定位符(Uniform Resource Locator),可以用来封装一个具体的网络资源地址。 - `java.net.URLConnection`:该类提供了一个通用框架来访问网络上的对象。`URL`类的`open...
在给定的"imageOcr"文件中,可能包含了示例代码、测试图像以及配置文件,你可以参考这些资源来搭建和运行一个简单的文字定位系统。通过实践和调试,你可以不断优化你的OCR应用,提高文字检测和定位的准确性和速度。 ...
JAR是Java平台的标准归档格式,用于将多个Java类文件、资源文件和元数据打包到一个单一的文件中。这有助于减少网络传输的时间,同时还可以实现版本控制和安全特性,如数字签名。 2. **查看JAR包内容**: 通常,...
以下将详细介绍如何在Java环境中调用淘宝IP定位查询接口,并进行测试使用。 首先,我们需要了解淘宝IP定位查询接口的基本原理。这个接口通常会根据提供的IP地址返回包含地理位置信息的数据,如城市、省份、国家等。...
1. **定位文件**:在服务器端,确定要提供下载的文件路径。 2. **设置响应头**:使用`HttpServletResponse`设置响应头,包括`Content-Disposition`(指示浏览器如何处理响应)和`Content-Type`(指定文件类型)。 3....
在Java编程中,关键字定位位置是一项重要的技能,特别是在处理PDF文档时。PDF(Portable Document Format)文件格式广泛用于存储和共享文档,而Java提供了一系列工具和技术来解析和操作这种文件。在这个场景中,我们...
4. **文件定位与分割**:切割文件时,需要知道分割点,这可以通过文件的字节数来确定。例如,可以设置每份文件的大小,然后读取文件,每次读取到设定大小时创建新文件继续写入。 5. **异常处理**:文件操作中可能...
总结来说,Java资源定位涉及了如何在程序中找到并访问非代码元素,这包括使用类加载器的方法、`ResourceBundle`进行国际化、以及Spring框架提供的高级工具。理解并熟练掌握这些方法,将有助于构建更加健壮和灵活的...
Java Class文件查看器是一款专为Java开发者设计的实用工具,它允许用户查看和分析.class文件,这是Java编译器将源代码编译后的二进制形式。了解如何使用这类工具对于理解和调试Java应用程序至关重要,尤其是在处理已...
总之,"JAVA帮助文件(第六版)"是Java开发者不可或缺的工具,无论你是刚接触Java的新手还是有经验的开发者,都应该充分利用这个资源来提升自己的技能。通过深入学习和实践,你将能够编写出更高效、更可靠的Java代码...