3hutool实战:IoUtil 流操作工具类(从流中读取内容)

3hutool实战:IoUtil 流操作工具类(从流中读取内容)

用途:IO工具类(从流中读取内容)

使用场景

IO工具类只是辅助流的读写,并不负责关闭流。原因是流可能被多次读写,读写关闭后容易造成问题。

(从流中读取内容)

(从流中读取内容)

(从流中读取内容)

项目引用

此博文的依据:hutool-5.6.5版本源码3hutool实战:IoUtil 流操作工具类(从流中读取内容)3hutool实战:IoUtil 流操作工具类(从流中读取内容)3hutool实战:IoUtil 流操作工具类(从流中读取内容)3hutool实战:IoUtil 流操作工具类(从流中读取内容)3hutool实战:IoUtil 流操作工具类(从流中读取内容)3hutool实战:IoUtil 流操作工具类(从流中读取内容)3hutool实战:IoUtil 流操作工具类(从流中读取内容)3hutool实战:IoUtil 流操作工具类(从流中读取内容)3hutool实战:IoUtil 流操作工具类(从流中读取内容)3hutool实战:IoUtil 流操作工具类(从流中读取内容)3hutool实战:IoUtil 流操作工具类(从流中读取内容)

方法明细

方法名称:cn.hutool.core.io.IoUtil.readBytes(java.io.InputStream)

方法描述

从流中读取bytes,读取完毕后关闭流

支持版本及以上

参数描述:3hutool实战:IoUtil 流操作工具类(从流中读取内容)3hutool实战:IoUtil 流操作工具类(从流中读取内容)3hutool实战:IoUtil 流操作工具类(从流中读取内容)3hutool实战:IoUtil 流操作工具类(从流中读取内容)

//这个文件3KB
        File src = new File("C:\\Users\\Administrator\\Desktop\\xuzhu/copyTest1.txt") ;
        InputStream input =  null;
        try {
            //创建流
            input =  new FileInputStream(src);
            //读取指定长度的byte数组,不关闭流
            boolean toLowerCase = false;
            String readHex = IoUtil.readHex(input,1000,toLowerCase);
            System.out.println(readHex);
            System.out.println("--------------------");
            System.out.println(HexUtil.decodeHexStr(readHex));
        } catch (IOException e) {
            //抛出一个运行时异常(直接停止掉程序)
            throw new RuntimeException("运行时异常",e);
        } finally {
            try {
                //如果是空的 说明流创建失败 失败了不需要关闭
                if (input != null) {
                    input.close();
                }
            } catch (Exception e) {
                //关闭资源失败 停止程序
                throw new RuntimeException("关闭资源失败");
            }
        }

3hutool实战:IoUtil 流操作工具类(从流中读取内容)3hutool实战:IoUtil 流操作工具类(从流中读取内容)3hutool实战:IoUtil 流操作工具类(从流中读取内容)3hutool实战:IoUtil 流操作工具类(从流中读取内容)3hutool实战:IoUtil 流操作工具类(从流中读取内容)3hutool实战:IoUtil 流操作工具类(从流中读取内容)3hutool实战:IoUtil 流操作工具类(从流中读取内容)方法明细

方法名称:cn.hutool.core.io.IoUtil.readObj(cn.hutool.core.io.ValidateObjectInputStream, java.lang.Class)

方法描述

从流中读取对象,即对象的反序列化,读取后不关闭流


此方法使用了{@link ValidateObjectInputStream}中的黑白名单方式过滤类,用于避免反序列化漏洞\


参数描述:3hutool实战:IoUtil 流操作工具类(从流中读取内容)

方法明细

方法名称:cn.hutool.core.io.IoUtil.readUtf8Lines(java.io.InputStream, T)

方法描述

从流中读取内容,使用UTF-8编码

支持版本及以上

参数描述:3hutool实战:IoUtil 流操作工具类(从流中读取内容)3hutool实战:IoUtil 流操作工具类(从流中读取内容)3hutool实战:IoUtil 流操作工具类(从流中读取内容)3hutool实战:IoUtil 流操作工具类(从流中读取内容)3hutool实战:IoUtil 流操作工具类(从流中读取内容)3hutool实战:IoUtil 流操作工具类(从流中读取内容)3hutool实战:IoUtil 流操作工具类(从流中读取内容)3hutool实战:IoUtil 流操作工具类(从流中读取内容)3hutool实战:IoUtil 流操作工具类(从流中读取内容)

public class IoUtilLineHandler implements LineHandler {
    @Override
    public void handle(String line) {
        System.out.println("handle:"+line);
    }
}
//--------------
@Test
    public void readLinesTest3(){
        File src = new File("C:\\Users\\Administrator\\Desktop\\xuzhu/copyTest1.txt") ;
        InputStream input =  null;
        try {
            //创建流
            input =  new FileInputStream(src);
            //从流中读取内容,使用UTF-8编码
            IoUtil.readLines(input, CharsetUtil.CHARSET_UTF_8, new IoUtilLineHandler());
        } catch (IOException e) {
            //抛出一个运行时异常(直接停止掉程序)
            throw new RuntimeException("运行时异常",e);
        } finally {
            try {
                //如果是空的 说明流创建失败 失败了不需要关闭
                if (input != null) {
                    input.close();
                }
            } catch (Exception e) {
                //关闭资源失败 停止程序
                throw new RuntimeException("关闭资源失败");
            }
        }
    }

3hutool实战:IoUtil 流操作工具类(从流中读取内容)3hutool实战:IoUtil 流操作工具类(从流中读取内容)

上一篇:完整项目基础架构精简版-实现权限管理


下一篇:Nginx 反向代理、负载均衡、页面缓存、URL重写及读写分离详解(一)