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

转 JAVA读取外部资源的方法

    博客分类:
  • java
阅读更多
在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 读取外部资源的方法详解及实例代码

    以下是对几种主要Java读取外部资源方法的详细解释和实例代码。 1. **从当前工作目录读取** 当资源文件位于程序运行时的工作目录下时,可以使用`FileInputStream`来读取。例如: ```java try { BufferedReader ...

    java获取网络音乐文件时长

    虽然这不是纯Java方法,但可以通过执行`ffmpeg`命令行来获取时长。首先在系统上安装`ffmpeg`,然后使用`Runtime.getRuntime().exec()`执行命令: ```java public class AudioDurationWithFFMPEG { public static ...

    Java读取netcdf文件和生成等值线的jar_netcdf_wContour

    本篇文章将重点讲解如何使用Java读取NetCDF文件以及生成等值线的实现方法,主要涉及两个关键库:netcdf-4.3.22.jar和wContour.jar。 首先,`netcdf-4.3.22.jar`是Unidata开发的Java NetCDF库,它提供了全面的功能来...

    Java中读取文件的方法大全

    在Java编程语言中,文件...了解并熟练运用这些方法对于Java开发者来说至关重要,因为它们构成了程序与外部数据交互的基础。在实际应用中,应根据具体需求选择合适的方法,并确保在操作完成后正确关闭流,避免资源泄漏。

    java读取xps文件

    2. **Java 读取 XPS 的方法** - **Apache POI-XPSPackage**:Apache POI 是一个流行的库,用于处理 Microsoft Office 格式,如 Excel 和 Word。尽管 POI 主要是为 Office 格式设计的,但它也提供了 XPSPackage,...

    java调用外部文件

    在Java编程语言中,调用外部文件是一项基本且重要的任务,无论是执行可执行程序(如.exe),还是查看帮助文档(如.chm)。本篇将详细阐述如何在Java中实现这些功能。 首先,让我们关注如何调用外部的.exe文件。在...

    总结一下java获取路径几种途径

    对于Web应用来说,路径还可能以URI或URL的形式存在,如数据库连接字符串、外部资源链接等。 ```java // 获取文件的URL对象 URL fileURL = new File("example.txt").toURI().toURL(); // 获取URI对象 URI fileUri = ...

    java,jsp读取远程图片到本地服务器

    这样的功能对于确保网站的性能和用户体验至关重要,因为将图片本地化可以减少加载时间,特别是对于大量外部资源的情况。下面我们将详细探讨这个过程涉及的关键知识点。 1. **Java和JSP基础**: Java是一种广泛使用...

    Java自学视频教程-java读取txt文件方法1.rar

    本教程将通过“Java自学视频教程-java读取txt文件方法1.rar”中的内容,详细介绍如何在Java中读取txt文件。 首先,我们需要理解Java I/O流的概念。Java I/O流是一组类,用于在内存和外部存储之间传输数据。读取文件...

    java文件的编码转换

    在Java中,我们可以使用`java.nio`包中的`Charset`、`Files`和`Paths`类来读取、写入和转换文件的编码。例如,要将GBK编码的Java源代码文件转换为UTF-8,可以按照以下步骤操作: 1. 打开文件:使用`Files....

    JAVA 获得控制台的输出信息

    `这一行调用了外部类`XXXX`的`main`方法,并传递了必要的参数。由于我们已经重定向了`System.out`,因此`main`方法中的任何打印操作都会被写入到`ByteArrayOutputStream`中,而不是控制台。 ### 3. 恢复原始输出流 ...

    java.lang.OutOfMemoryError: Java heap space 解决方法

    "Java.lang.OutOfMemoryError: Java heap space 解决方法" Java.lang.OutOfMemoryError: Java heap space 是 Java 中的一个常见错误,它发生时,Java 虚拟机 (JVM) 无法分配对象,因为堆空间不足。下面是解决该问题...

    Java,获取汉字拼音、部首、笔画、笔画数目源文件、源码

    这样的数据通常不会内置在标准Java库中,因此可能需要从外部资源如HanDict(你提到的压缩包中的文件)导入。 笔画是构成汉字的基本线条,而笔画数目则是指一个汉字由多少笔画组成。获取汉字的笔画和笔画数目,同样...

    Java-recourse.rar_java读取recouse

    在Java编程中,资源(Resource)通常指的是程序运行过程中需要用到的外部文件,如文本文件、图片、音频等。这些资源可以被嵌入到程序的类路径(Classpath)中,以便在运行时方便地访问。"Java-readResource.rar"这个...

    用java 调用外部程序

    2. 输入/输出流管理:外部程序的输出(标准输出和错误输出)可以通过`Process`的`getOutputStream()`、`getInputStream()`和`getErrorStream()`方法获取,必须及时读取,否则可能导致阻塞。 3. 资源释放:确保在不再...

    Java实现获取窗口句柄并操作窗口jna-4.4.0

    然而,Java原生并不支持直接操作操作系统级别的资源,如窗口句柄。为了弥补这个不足,开发人员可以使用Java Native Access (JNA),这是一个Java平台上的库,允许Java代码调用本机库函数,与操作系统进行更直接的交互...

    java通过url调用接口

    首先,Java中的`java.net.URL`类是用于表示统一资源定位符(URL)的对象,它是访问互联网资源的入口。通过创建URL对象,可以获取到与该URL关联的信息,如主机名、端口号等,并且可以通过`openConnection()`方法建立...

    java实现文字转语音播放

    1. **配置TTS引擎**:在Java中,你需要首先获取可用的TTS引擎。这通常通过`EngineManager`类的`getEngineList()`方法实现,它可以返回一个引擎的列表。例如: ```java List<EngineInfo> engineInfos = Engine...

    java读取properties文件的方法实例分析

    本篇文章将深入探讨如何在Java中读取`.properties`文件,无论它们位于项目内部还是外部。 1. **不在项目中读取.properties文件** 当`.properties`文件位于项目的外部时,我们需要使用文件系统路径来访问它。下面...

    JAVA实现Linux中word转换pdf

    - 首先,使用Apache POI读取Word文档,获取其内容(文本、样式、图像等)。 - 然后,使用PDFBox或iText创建一个新的PDF文档,并将从Word中提取的内容写入PDF。 - 或者,如果你选择使用命令行工具,如`unoconv`或`...

Global site tag (gtag.js) - Google Analytics