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

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

image.png

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

使用场景

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

(从流中读取内容)

(从流中读取内容)

(从流中读取内容)

项目引用

此博文的依据:hutool-5.6.5版本源码image.pngimage.pngimage.pngimage.pngimage.pngimage.pngimage.pngimage.pngimage.pngimage.pngimage.png

方法明细

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

方法描述

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

支持版本及以上

参数描述:image.pngimage.pngimage.pngimage.png

//这个文件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("关闭资源失败");
      }
    }

image.pngimage.pngimage.pngimage.pngimage.pngimage.pngimage.png方法明细

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

方法描述

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


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


参数描述:image.png

方法明细

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

方法描述

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

支持版本及以上

参数描述:image.pngimage.pngimage.pngimage.pngimage.pngimage.pngimage.pngimage.pngimage.png

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("关闭资源失败");
      }
    }
  }

image.pngimage.png

目录
相关文章
Java:文件写入读取操作和工具类
Java:文件写入读取操作和工具类
355 0
Java:使用Stream读按行取文件内容
Java:使用Stream读按行取文件内容
130 0
|
缓存 前端开发 Java
Java代码读取文件缓存问题解决(案例详解)
最近遇到了一个Java文件读取的缓存问题,打远程断点出现的也是原来的老代码参数,好在晚上十点突然找到了解决方案,豁然开朗,现整理分享思路,希望对遇到同样文件读取缓存问题的你有帮助!
475 0
Java代码读取文件缓存问题解决(案例详解)
5hutool实战:IoUtil 流操作工具类(将内容写到流中)
5hutool实战:IoUtil 流操作工具类(将内容写到流中)
254 0
5hutool实战:IoUtil 流操作工具类(将内容写到流中)
4hutool实战:IoUtil 流操作工具类(toStream转为流)
4hutool实战:IoUtil 流操作工具类(toStream转为流)
360 0
4hutool实战:IoUtil 流操作工具类(toStream转为流)
6hutool实战:IoUtil 流操作工具类(流的常用操作)
6hutool实战:IoUtil 流操作工具类(流的常用操作)
409 0
6hutool实战:IoUtil 流操作工具类(流的常用操作)
1hutool实战:IoUtil 流操作工具类(copy拷贝操作)
1hutool实战:IoUtil 流操作工具类(copy拷贝操作)
1269 0
1hutool实战:IoUtil 流操作工具类(copy拷贝操作)
2hutool实战:IoUtil 流操作工具类(获取getReader and getWriter)
2hutool实战:IoUtil 流操作工具类(获取getReader and getWriter)
383 0
2hutool实战:IoUtil 流操作工具类(获取getReader and getWriter)
9hutool实战:FileUtil 文件工具类(读取文件)
9hutool实战:FileUtil 文件工具类(读取文件)
2000 0
9hutool实战:FileUtil 文件工具类(读取文件)