package com.jingsong.test;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.util.CharsetUtil;
import org.apache.commons.io.IOUtils;
import org.springframework.core.io.ClassPathResource;
import java.io.InputStream;
/**
* @author jingsong
* @date 2022/4/24 23:42
*/
public class IOTest {
public static void main(String[] args) throws Exception {
String filePath = "data/io_test_data.json";
/*
1. 读取文件中的数据 spring + apache 需要关流
[spring仓库](https://mvnrepository.com/artifact/org.springframework/spring-context)
[apache仓库](https://mvnrepository.com/artifact/org.apache.commons/commons-io)
*/
InputStream is1 = new ClassPathResource(filePath).getInputStream();
String data1 = IOUtils.toString(is1, CharsetUtil.UTF_8);
System.out.println("data1 = " + data1);
/*
2. hutool工具包,两者的底层逻辑差不多 自动关流
1. 获得文件的io流
2. read这个io流
*/
InputStream is2 = IOTest.class.getClassLoader().getResourceAsStream(filePath);
String data2 = IoUtil.read(is2, CharsetUtil.CHARSET_UTF_8);
System.out.println("data2 = " + data2);
/*
注意:io流使用完毕需要关流,简单的检测流是否关闭的方法
如果流已经关闭,再次read会报异常
*/
is1.read();// 没有异常,没有关闭
is1.close();
is2.read();// 出现异常,Stream closed
}
}
utils005_IO流读取文件
于 2022-04-25 00:43:46 首次发布