如何读取resource下的文件
时间: 2023-09-23 11:06:47 浏览: 42
可以使用FileInputStream或者BufferedReader来读取resource下的文件。以下是一个Java代码示例:
```
InputStream inputStream = getClass().getResourceAsStream("/path/to/resource/file");
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
reader.close();
```
其中,"/path/to/resource/file"是文件的相对路径,可以根据实际情况进行修改。
相关问题
java 读取resource下文件
Java中可以通过ClassLoader来读取resource下的文件,具体步骤如下:
1. 获取ClassLoader对象
```java
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
```
2. 通过ClassLoader对象获取资源路径
```java
URL url = classLoader.getResource("文件名");
```
3. 使用IO流读取文件内容
```java
InputStream inputStream = url.openStream();
// 使用IO流读取文件内容
```
完整示例代码如下:
```java
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
URL url = classLoader.getResource("test.txt");
if (url != null) {
try (InputStream inputStream = url.openStream()) {
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
```
注意:在使用ClassLoader.getResource方法时,文件名需要以"/"开头。例如,如果文件名为test.txt,需要写成"/test.txt"。
jar包中如何读取resource下文件
在 Java 中,可以使用以下代码读取 resource 目录下的文件:
```java
InputStream inputStream = getClass().getClassLoader().getResourceAsStream("path/to/resource/file");
```
其中,`path/to/resource/file` 是相对于 `src/main/resources` 目录的路径。
假设你的项目结构如下:
```
├── src
│ └── main
│ ├── java
│ │ └── com
│ │ └── example
│ │ └── MyApp.java
│ └── resources
│ └── data.txt
└── pom.xml
```
如果你想读取 `data.txt` 文件,可以使用以下代码:
```java
InputStream inputStream = getClass().getClassLoader().getResourceAsStream("data.txt");
```
注意,如果你使用的是 Maven 项目,`src/main/resources` 目录下的文件会被打包到 `target/classes` 目录中。因此,在使用上述代码时,无需考虑打包后的目录结构。