📜  Java中的类 getResourceAsStream() 方法和示例(1)

📅  最后修改于: 2023-12-03 15:16:34.070000             🧑  作者: Mango

Java中的类 getResourceAsStream() 方法和示例

在Java开发中,我们常常需要读取项目中的资源文件,getResourceAsStream()方法就是一种比较常用的读取资源文件的方式。本文将对该方法进行详细介绍,并提供示例代码。

getResourceAsStream()方法介绍

getResourceAsStream()方法是Java中Class类的一个方法,用于获取项目中的资源文件。其用法如下所示:

InputStream is = getClass().getResourceAsStream(resourcePath);

其中,resourcePath表示要读取的资源文件的路径,这个路径可以是绝对路径,也可以是相对路径。如果是相对路径,需要将其相对于当前类所在的路径。

使用getResourceAsStream()方法可以获取到一个InputStream流,然后我们就可以使用InputStream流来读取资源文件的内容了。

需要注意的是,getResourceAsStream()方法获取资源文件的路径必须以“/”开头,否则有可能会返回null。

示例代码

下面我们通过一个示例代码来演示getResourceAsStream()方法的使用。

假设有一个项目结构如下:

src
│   Main.java
└───resources
        data.txt

其中,data.txt是我们要读取的资源文件。

我们可以编写一个Main.java文件来读取该文件的内容,具体代码如下:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) {
        // 获取data.txt文件的输入流
        InputStream is = Main.class.getResourceAsStream("/resources/data.txt");

        // 将输入流转换为BufferedReader
        BufferedReader br = new BufferedReader(new InputStreamReader(is));

        // 读取文件内容并输出
        try {
            String line;
            while ((line = br.readLine()) != null) {
                System.out.println(line);
            }
            br.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

上面的代码中,我们首先使用getResourceAsStream()方法获取到data.txt文件的InputStream流,然后将其转换为BufferedReader,最后读取文件内容并输出。

通过上述示例代码,我们可以看到getResourceAsStream()方法的使用非常简单,只需要提供要读取的资源文件的路径即可。