JAVA读取外部资源的方法
在
java代码中经常有读取外部资源的要求:如配置文件等等,通常会把配置文件放在classpath下或者在
web项目中放在
web-inf下.
1.从当前的工作目录中读取:
【达内就业】[java] view plaincopyprint?
try {
- BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream("wkdir.txt"))); String str;
-
while ((str = in.readLine()) != null) { System.out.println(str);
- } in.close();
- } catch (IOException e) {
- }
2,从classpath中读取(读取找到的第一个符合名称的文件):
【达内培训费用】[java] view plaincopyprint?
try {
- InputStream stream = ClassLoader.getSystemResourceAsStream("fileinjar.txt"); BufferedReader in = new BufferedReader(new InputStreamReader(stream));
- String str;
while ((str = in.readLine()) != null) {
- System.out.println(str); }
- in.close(); } catch (IOException e) {
- }
3,从classpath中读取(读取找到的所有符合名称的文件,如Spring中带有classpath*:前缀的情况就会从classpath中遍历):
[java] view plaincopyprint?
try {
-
Enumeration resourceUrls = Thread.currentThread().getContextClassLoader().getResources("fileinjar.txt");
-
while (resourceUrls.hasMoreElements()) {
- URL url = (URL) resourceUrls.nextElement(); System.out.println(url);
-
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
- String str;
while ((str = in.readLine()) != null) {
- System.out.println(str); }
- in.close();
- }
- } catch (IOException e) {
- }
4,从URL中读取:
【达内怎么样】[java] view plaincopyprint?
try {
-
URL url = new URL("http://blog.csdn.net/kkdelta");
- System.out.println(url);
- BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream())); String str;
-
while ((str = in.readLine()) != null) { System.out.println(str);
- } in.close();
-
} catch (IOException e) {
- e.printStackTrace();
- }
5,web项目从web-inf文件夹读取(通过得到ServletContext读取,可以在servlet或者能够得到request的类中使用):
[java] view plaincopyprint?
try {
-
URL url = (URL) getServletContext().getResource("/WEB-INF/webinffile.txt");
-
// URL url = (URL)req.getSession().getServletContext().getResource("/WEB-INF/webinffile.txt");
System.out.println(url);
-
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
- String str;
while ((str = in.readLine()) != null) {
- System.out.println(str); }
- in.close();
- } catch (IOException e) { e.printStackTrace();
- }
以上代码在eclipse环境中运行
测试过.不过最近在用JUnit的时候,通过ant运行JUnit时通过ClassLoader.getSystemResourceAsStream("file.txt");的方式去找不到文件.改成 Xclass.class.getClassLoader().getResourceAsStream("file.txt");能从ant指定的classpath中找到文件.原因是ClassLoader和Xclass.class.getClassLoader()是不同的,查找的路径不一样.
分享到:
相关推荐
以下是对几种主要Java读取外部资源方法的详细解释和实例代码。 1. **从当前工作目录读取** 当资源文件位于程序运行时的工作目录下时,可以使用`FileInputStream`来读取。例如: ```java try { BufferedReader ...
虽然这不是纯Java方法,但可以通过执行`ffmpeg`命令行来获取时长。首先在系统上安装`ffmpeg`,然后使用`Runtime.getRuntime().exec()`执行命令: ```java public class AudioDurationWithFFMPEG { public static ...
在Java编程语言中,文件...了解并熟练运用这些方法对于Java开发者来说至关重要,因为它们构成了程序与外部数据交互的基础。在实际应用中,应根据具体需求选择合适的方法,并确保在操作完成后正确关闭流,避免资源泄漏。
本篇文章将重点讲解如何使用Java读取NetCDF文件以及生成等值线的实现方法,主要涉及两个关键库:netcdf-4.3.22.jar和wContour.jar。 首先,`netcdf-4.3.22.jar`是Unidata开发的Java NetCDF库,它提供了全面的功能来...
这段代码会启动.exe文件,并创建一个`Process`对象,你可以通过这个对象与外部程序交互,如读取其输出或处理错误信息。 对于调用.chm(Microsoft HTML Help)文件,Java本身并不直接支持。但你可以利用`java.awt....
这样的功能对于确保网站的性能和用户体验至关重要,因为将图片本地化可以减少加载时间,特别是对于大量外部资源的情况。下面我们将详细探讨这个过程涉及的关键知识点。 1. **Java和JSP基础**: Java是一种广泛使用...
对于Web应用来说,路径还可能以URI或URL的形式存在,如数据库连接字符串、外部资源链接等。 ```java // 获取文件的URL对象 URL fileURL = new File("example.txt").toURI().toURL(); // 获取URI对象 URI fileUri = ...
本教程将通过“Java自学视频教程-java读取txt文件方法1.rar”中的内容,详细介绍如何在Java中读取txt文件。 首先,我们需要理解Java I/O流的概念。Java I/O流是一组类,用于在内存和外部存储之间传输数据。读取文件...
2. **Java 读取 XPS 的方法** - **Apache POI-XPSPackage**:Apache POI 是一个流行的库,用于处理 Microsoft Office 格式,如 Excel 和 Word。尽管 POI 主要是为 Office 格式设计的,但它也提供了 XPSPackage,...
`这一行调用了外部类`XXXX`的`main`方法,并传递了必要的参数。由于我们已经重定向了`System.out`,因此`main`方法中的任何打印操作都会被写入到`ByteArrayOutputStream`中,而不是控制台。 ### 3. 恢复原始输出流 ...
"Java.lang.OutOfMemoryError: Java heap space 解决方法" Java.lang.OutOfMemoryError: Java heap space 是 Java 中的一个常见错误,它发生时,Java 虚拟机 (JVM) 无法分配对象,因为堆空间不足。下面是解决该问题...
2. 输入/输出流管理:外部程序的输出(标准输出和错误输出)可以通过`Process`的`getOutputStream()`、`getInputStream()`和`getErrorStream()`方法获取,必须及时读取,否则可能导致阻塞。 3. 资源释放:确保在不再...
然而,Java原生并不支持直接操作操作系统级别的资源,如窗口句柄。为了弥补这个不足,开发人员可以使用Java Native Access (JNA),这是一个Java平台上的库,允许Java代码调用本机库函数,与操作系统进行更直接的交互...
这样的数据通常不会内置在标准Java库中,因此可能需要从外部资源如HanDict(你提到的压缩包中的文件)导入。 笔画是构成汉字的基本线条,而笔画数目则是指一个汉字由多少笔画组成。获取汉字的笔画和笔画数目,同样...
常见的HTTP请求方法有GET和POST,它们分别用于获取资源和提交数据。对于简单的GET请求,可以直接设置`URLConnection`的`doOutput`属性为`true`,然后写入请求参数。如果是POST请求,通常需要设置`setDoOutput(true)`...
在Java编程中,资源(Resource)通常指的是程序运行过程中需要用到的外部文件,如文本文件、图片、音频等。这些资源可以被嵌入到程序的类路径(Classpath)中,以便在运行时方便地访问。"Java-readResource.rar"这个...
本篇文章将深入探讨如何在Java中读取`.properties`文件,无论它们位于项目内部还是外部。 1. **不在项目中读取.properties文件** 当`.properties`文件位于项目的外部时,我们需要使用文件系统路径来访问它。下面...
3. **读取XML内容**:创建一个`InputStream`对象,通过`ZipEntry`的`getInputStream()`方法获取AndroidManifest.xml的输入流。然后可以使用`java.io.InputStreamReader`和`java.io.BufferedReader`来读取XML内容。 ...
### Java 获取外网 IP 的实现方法 在现代网络应用中,获取本机的外网 IP 地址是一项常见的需求。例如,在服务器管理、网络安全、分布式系统等场景中,经常需要知道自己的公共 IP 地址。Java 作为一种广泛使用的编程...
你可以使用递归方法遍历目录,或者利用`Files.walk()`方法获取目录下的所有文件和子目录。 5. **文件过滤** 用户可能希望按照特定的类型或条件筛选文件。可以创建自定义的`FileFilter`或`PathMatcher`来实现这一...