在java代码中经常有读取外部资源的要求:如配置文件等等,通常会把配置文件放在classpath下或者在web项目中放在web-inf下.
1.从当前的工作目录中读取:
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中读取(读取找到的第一个符合名称的文件):
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中遍历):
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中读取:
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的类中使用):
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 ...
2. **Java 读取 XPS 的方法** - **Apache POI-XPSPackage**:Apache POI 是一个流行的库,用于处理 Microsoft Office 格式,如 Excel 和 Word。尽管 POI 主要是为 Office 格式设计的,但它也提供了 XPSPackage,...
虽然这不是纯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库,它提供了全面的功能来...
在Java编程语言中,调用外部文件是一项基本且重要的任务,无论是执行可执行程序(如.exe),还是查看帮助文档(如.chm)。本篇将详细阐述如何在Java中实现这些功能。 首先,让我们关注如何调用外部的.exe文件。在...
对于Web应用来说,路径还可能以URI或URL的形式存在,如数据库连接字符串、外部资源链接等。 ```java // 获取文件的URL对象 URL fileURL = new File("example.txt").toURI().toURL(); // 获取URI对象 URI fileUri = ...
这样的功能对于确保网站的性能和用户体验至关重要,因为将图片本地化可以减少加载时间,特别是对于大量外部资源的情况。下面我们将详细探讨这个过程涉及的关键知识点。 1. **Java和JSP基础**: Java是一种广泛使用...
本教程将通过“Java自学视频教程-java读取txt文件方法1.rar”中的内容,详细介绍如何在Java中读取txt文件。 首先,我们需要理解Java I/O流的概念。Java I/O流是一组类,用于在内存和外部存储之间传输数据。读取文件...
在Java中,我们可以使用`java.nio`包中的`Charset`、`Files`和`Paths`类来读取、写入和转换文件的编码。例如,要将GBK编码的Java源代码文件转换为UTF-8,可以按照以下步骤操作: 1. 打开文件:使用`Files....
"Java.lang.OutOfMemoryError: Java heap space 解决方法" Java.lang.OutOfMemoryError: Java heap space 是 Java 中的一个常见错误,它发生时,Java 虚拟机 (JVM) 无法分配对象,因为堆空间不足。下面是解决该问题...
`这一行调用了外部类`XXXX`的`main`方法,并传递了必要的参数。由于我们已经重定向了`System.out`,因此`main`方法中的任何打印操作都会被写入到`ByteArrayOutputStream`中,而不是控制台。 ### 3. 恢复原始输出流 ...
这样的数据通常不会内置在标准Java库中,因此可能需要从外部资源如HanDict(你提到的压缩包中的文件)导入。 笔画是构成汉字的基本线条,而笔画数目则是指一个汉字由多少笔画组成。获取汉字的笔画和笔画数目,同样...
在Java编程中,资源(Resource)通常指的是程序运行过程中需要用到的外部文件,如文本文件、图片、音频等。这些资源可以被嵌入到程序的类路径(Classpath)中,以便在运行时方便地访问。"Java-readResource.rar"这个...
然而,Java原生并不支持直接操作操作系统级别的资源,如窗口句柄。为了弥补这个不足,开发人员可以使用Java Native Access (JNA),这是一个Java平台上的库,允许Java代码调用本机库函数,与操作系统进行更直接的交互...
2. 输入/输出流管理:外部程序的输出(标准输出和错误输出)可以通过`Process`的`getOutputStream()`、`getInputStream()`和`getErrorStream()`方法获取,必须及时读取,否则可能导致阻塞。 3. 资源释放:确保在不再...
首先,Java中的`java.net.URL`类是用于表示统一资源定位符(URL)的对象,它是访问互联网资源的入口。通过创建URL对象,可以获取到与该URL关联的信息,如主机名、端口号等,并且可以通过`openConnection()`方法建立...
1. **配置TTS引擎**:在Java中,你需要首先获取可用的TTS引擎。这通常通过`EngineManager`类的`getEngineList()`方法实现,它可以返回一个引擎的列表。例如: ```java List<EngineInfo> engineInfos = Engine...
本篇文章将深入探讨如何在Java中读取`.properties`文件,无论它们位于项目内部还是外部。 1. **不在项目中读取.properties文件** 当`.properties`文件位于项目的外部时,我们需要使用文件系统路径来访问它。下面...
- 首先,使用Apache POI读取Word文档,获取其内容(文本、样式、图像等)。 - 然后,使用PDFBox或iText创建一个新的PDF文档,并将从Word中提取的内容写入PDF。 - 或者,如果你选择使用命令行工具,如`unoconv`或`...