java 怎么读取同一个包下的json文件
时间: 2023-07-14 07:05:49 浏览: 104
java读取json的jar包
5星 · 资源好评率100%
在 Java 中,可以使用 `InputStream` 和 `BufferedReader` 来读取同一个包下的 JSON 文件。以下是一个示例代码:
```java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
public class JsonReader {
public static void main(String[] args) {
// 获取当前类所在的包的路径
String packagePath = JsonReader.class.getPackage().getName().replace(".", "/");
// 构建 JSON 文件的路径
String jsonFilePath = packagePath + "/data.json";
try {
// 使用 ClassLoader 获取 JSON 文件的输入流
InputStream inputStream = JsonReader.class.getClassLoader().getResourceAsStream(jsonFilePath);
if (inputStream != null) {
// 使用 BufferedReader 逐行读取 JSON 文件内容
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String line;
StringBuilder jsonContent = new StringBuilder();
while ((line = reader.readLine()) != null) {
jsonContent.append(line);
}
// 输出读取到的 JSON 内容
System.out.println(jsonContent.toString());
// 关闭流
reader.close();
inputStream.close();
} else {
System.out.println("JSON 文件不存在");
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
在上述示例中,假设 JSON 文件名为 `data.json`,并放置在与 `JsonReader` 类相同的包下。首先,通过 `JsonReader.class.getPackage().getName()` 获取当前类所在的包路径。然后,使用 `ClassLoader.getResourceAsStream()` 方法获取 JSON 文件的输入流。接下来,使用 `BufferedReader` 逐行读取 JSON 文件内容,并将其存储在 `StringBuilder` 中。最后,关闭流并输出读取到的 JSON 内容。
请注意,以上代码只是演示了如何读取同一个包下的 JSON 文件。如果 JSON 文件位于其他位置,可以根据实际情况更改文件路径。
阅读全文