4hutool实战:IoUtil 流操作工具类(toStream转为流)
Posted 小虚竹
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了4hutool实战:IoUtil 流操作工具类(toStream转为流)相关的知识,希望对你有一定的参考价值。
技术活,该赏
关注+一键三连(点赞,评论,收藏)再看,养成好习惯
用途:IO工具类(toStream转为流)
使用场景
IO工具类只是辅助流的读写,并不负责关闭流。原因是流可能被多次读写,读写关闭后容易造成问题。
(String 转为流)
(文件转为流)
(byte[]转为流)
(不同类型的流互转)
项目引用
此博文的依据:hutool-5.6.5版本源码
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-core</artifactId>
<version>5.6.5</version>
</dependency>
方法摘要
方法 | 描述 |
---|---|
cn.hutool.core.io.IoUtil.toStream(java.lang.String, java.lang.String) |
String 转为流
|
cn.hutool.core.io.IoUtil.toStream(java.lang.String, java.nio.charset.Charset) |
String 转为流
|
cn.hutool.core.io.IoUtil.toUtf8Stream(java.lang.String) |
String 转为UTF-8编码的字节流流
|
cn.hutool.core.io.IoUtil.toStream(java.io.File) |
文件转为{@link FileInputStream}
|
cn.hutool.core.io.IoUtil.toStream(byte[]) |
byte[] 转为{@link ByteArrayInputStream}
|
cn.hutool.core.io.IoUtil.toStream(java.io.ByteArrayOutputStream) |
{@link ByteArrayOutputStream}转为{@link ByteArrayInputStream}
|
cn.hutool.core.io.IoUtil.toBuffered(java.io.InputStream) |
转换为{@link BufferedInputStream}
|
cn.hutool.core.io.IoUtil.toBuffered(java.io.InputStream, int) |
转换为{@link BufferedInputStream}
|
cn.hutool.core.io.IoUtil.toBuffered(java.io.OutputStream) |
转换为{@link BufferedOutputStream}
|
cn.hutool.core.io.IoUtil.toBuffered(java.io.OutputStream, int) |
转换为{@link BufferedOutputStream}
|
cn.hutool.core.io.IoUtil.toBuffered(java.io.Reader) |
转换为{@link BufferedReader}
|
cn.hutool.core.io.IoUtil.toBuffered(java.io.Reader, int) |
转换为{@link BufferedReader}
|
cn.hutool.core.io.IoUtil.toBuffered(java.io.Writer) |
转换为{@link BufferedWriter}
|
cn.hutool.core.io.IoUtil.toBuffered(java.io.Writer, int) |
转换为{@link BufferedWriter}
|
cn.hutool.core.io.IoUtil.toMarkSupportStream(java.io.InputStream) |
将{@link InputStream}转换为支持mark标记的流<br> 若原流支持mark标记,则返回原流,否则使用{@link BufferedInputStream} 包装之
|
cn.hutool.core.io.IoUtil.toPushbackStream(java.io.InputStream, int) |
转换为{@link PushbackInputStream}<br> 如果传入的输入流已经是{@link PushbackInputStream},强转返回,否则新建一个
|
cn.hutool.core.io.IoUtil.toAvailableStream(java.io.InputStream) |
将指定{@link InputStream} 转换为{@link InputStream#available()}方法可用的流。
在Socket通信流中,服务端未返回数据情况下{@link InputStream#available()}方法始终为{@code 0} 因此,在读取前需要调用{@link InputStream#read()}读取一个字节(未返回会阻塞),一旦读取到了,{@link InputStream#available()}方法就正常了。 需要注意的是,在网络流中,是按照块来传输的,所以 {@link InputStream#available()} 读取到的并非最终长度,而是此次块的长度。 此方法返回对象的规则为:
|
方法明细
方法名称:cn.hutool.core.io.IoUtil.toStream(java.lang.String, java.lang.String)
方法描述
String 转为流
支持版本及以上
参数描述:
参数名 | 描述 |
---|---|
String content |
content 内容
|
String charsetName |
charsetName 编码
|
返回值:
字节流
参考案例:
//内存读写流 不用回收关闭
ByteArrayInputStream byteArrayInputStream = IoUtil.toStream("1hello 小虚竹\\n2hello 小虚竹","UTF-8");
String str = IoUtil.read(byteArrayInputStream,"UTF-8");
System.out.println(str);
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.io.IoUtil.toStream(java.lang.String, java.nio.charset.Charset)
方法描述
String 转为流
支持版本及以上
参数描述:
参数名 | 描述 |
---|---|
String content |
content 内容
|
Charset charset |
charset 编码
|
返回值:
字节流
参考案例:
//内存读写流 不用回收关闭
ByteArrayInputStream byteArrayInputStream = IoUtil.toStream("1hello 小虚竹\\n2hello 小虚竹","UTF-8");
String str = IoUtil.read(byteArrayInputStream,CharsetUtil.UTF_8);
System.out.println(str);
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.io.IoUtil.toUtf8Stream(java.lang.String)
方法描述
String 转为UTF-8编码的字节流流
支持版本及以上
4.5.1
参数描述:
参数名 | 描述 |
---|---|
String content |
content 内容
|
返回值:
字节流
参考案例:
//内存读写流 不用回收关闭
ByteArrayInputStream byteArrayInputStream = IoUtil.toUtf8Stream("1hello 小虚竹\\n2hello 小虚竹");
String str = IoUtil.read(byteArrayInputStream,CharsetUtil.UTF_8);
System.out.println(str);
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.io.IoUtil.toStream(java.io.File)
方法描述
文件转为{@link FileInputStream}
支持版本及以上
参数描述:
参数名 | 描述 |
---|---|
File file |
file 文件
|
返回值:
{@link FileInputStream}
参考案例:
File src = new File("C:\\\\Users\\\\Administrator\\\\Desktop\\\\xuzhu/toStreamTest4.txt") ;
FileInputStream fileInputStream = null;
try {
//创建流
fileInputStream = IoUtil.toStream(src);
String str = IoUtil.read(fileInputStream,CharsetUtil.UTF_8);
System.out.println(str);
} catch (Exception e) {
//抛出一个运行时异常(直接停止掉程序)
throw new RuntimeException("运行时异常",e);
} finally {
try {
//如果是空的 说明流创建失败 失败了不需要关闭
if (fileInputStream != null) {
fileInputStream.close();
}
} catch (Exception e) {
//关闭资源失败 停止程序
throw new RuntimeException("关闭资源失败");
}
}
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.io.IoUtil.toStream(byte[])
方法描述
byte[] 转为{@link ByteArrayInputStream}
支持版本及以上
4.1.8
参数描述:
参数名 | 描述 |
---|---|
byte[] content |
content 内容bytes
|
返回值:
字节流
参考案例:
String str = "1hello 小虚竹\\n2hello 小虚竹";
byte[] sb = str.getBytes();
//内存读写流 不用回收关闭
ByteArrayInputStream byteArrayInputStream = IoUtil.toStream(sb);
String str1 = IoUtil.read(byteArrayInputStream,CharsetUtil.UTF_8);
System.out.println(str1);
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.io.IoUtil.toStream(java.io.ByteArrayOutputStream)
方法描述
{@link ByteArrayOutputStream}转为{@link ByteArrayInputStream}
支持版本及以上
5.3.6
参数描述:
参数名 | 描述 |
---|---|
ByteArrayOutputStream out |
out {@link ByteArrayOutputStream}
|
返回值:
字节流
参考案例:
try {
内存读写流 不用回收关闭
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
String str = "1hello 小虚竹\\n2hello 小虚竹";
byte[] sb = str.getBytes();
byteArrayOutputStream.write(sb);
ByteArrayInputStream byteArrayInputStream = IoUtil.toStream(byteArrayOutputStream);
String str1 = IoUtil.read(byteArrayInputStream,CharsetUtil.UTF_8);
System.out.println(str1);
} catch (IOException e) {
//抛出一个运行时异常(直接停止掉程序)
throw new RuntimeException("运行时异常",e);
}
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.io.IoUtil.toBuffered(java.io.InputStream)
方法描述
转换为{@link BufferedInputStream}
支持版本及以上
4.0.10
参数描述:
参数名 | 描述 |
---|---|
InputStream in |
in {@link InputStream}
|
返回值:
{@link BufferedInputStream}
参考案例:
File src = new File("C:\\\\Users\\\\Administrator\\\\Desktop\\\\xuzhu/toBufferedTest1.txt") ;
FileInputStream fileInputStream = null;
BufferedInputStream bufferedInputStream = null;
try {
fileInputStream = new FileInputStream(src);
bufferedInputStream = IoUtil.toBuffered(fileInputStream);
String str = IoUtil.read(bufferedInputStream,"UTF-8");
System.out.println(str);
} catch (IOException e) {
//抛出一个运行时异常(直接停止掉程序)
throw new RuntimeException("运行时异常",e);
}finally {
IoUtil.close(fileInputStream);
IoUtil.close(bufferedInputStream);
}
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.io.IoUtil.toBuffered(java.io.InputStream, int)
方法描述
转换为{@link BufferedInputStream}
支持版本及以上
5.6.1
参数描述:
参数名 | 描述 |
---|---|
InputStream in |
in {@link InputStream}
|
int bufferSize |
bufferSize buffer size
|
返回值:
{@link BufferedInputStream}
参考案例:
File src = new File("C:\\\\Users\\\\Administrator\\\\Desktop\\\\xuzhu/toBufferedTest1.txt") ;
FileInputStream fileInputStream = null;
BufferedInputStream bufferedInputStream = null;
try {
fileInputStream = new FileInputStream(src);
bufferedInputStream = IoUtil.toBuffered(fileInputStream,8192);
String str = IoUtil.read(bufferedInputStream,"UTF-8");
System.out.println(str);
} catch (IOException e) {
//抛出一个运行时异常(直接停止掉程序)
throw new RuntimeException("运行时异常",e);
}finally {
IoUtil.close(fileInputStream);
IoUtil.close(bufferedInputStream);
}
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.io.IoUtil.toBuffered(java.io.OutputStream)
方法描述
转换为{@link BufferedOutputStream}
支持版本及以上
4.0.10
参数描述:
参数名 | 描述 |
---|---|
OutputStream out |
out {@link OutputStream}
|
返回值:
{@link BufferedOutputStream}
参考案例:
File src = new File("C:\\\\Users\\\\Administrator\\\\Desktop\\\\xuzhu/toBufferedTest3.txt") ;
OutputStream outputStream = null;
BufferedOutputStream bufferedOutputStream = null;
try {
//创建流
outputStream = new FileOutputStream(src);
bufferedOutputStream = IoUtil.toBuffered(outputStream);
String str = "toBufferedTest3内容1 \\ntoBufferedTest3内容2";
byte[] sb = str.getBytes();
bufferedOutputStream.write(sb);
bufferedOutputStream.flush();
} catch (IOException e) {
//抛出一个运行时异常(直接停止掉程序)
throw new RuntimeException("运行时异常",e);
}finally {
IoUtil.close(outputStream);
IoUtil.close(bufferedOutputStream);
}
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.io.IoUtil.toBuffered(java.io.OutputStream, int)
方法描述
转换为{@link BufferedOutputStream}
支持版本及以上
5.6.1
参数描述:
参数名 | 描述 |
---|---|
OutputStream out |
out {@link OutputStream}
|
int bufferSize |
bufferSize buffer size
|
返回值:
{@link BufferedOutputStream}
参考案例:
File src = new File("C:\\\\Users\\\\Administrator\\\\Desktop\\\\xuzhu/toBufferedTest3.txt") ;
OutputStream outputStream = null;
BufferedOutputStream bufferedOutputStream = null;
try {
//创建流
outputStream = new FileOutputStream(src);
bufferedOutputStream = IoUtil.toBuffered(outputStream,8192);
String str = "toBufferedTest3内容1 \\ntoBufferedTest3内容2";
byte[] sb = str.getBytes();
bufferedOutputStream.write(sb);
bufferedOutputStream.flush();
} catch (IOException e) {
//抛出一个运行时异常(直接停止掉程序)
throw new RuntimeException("运行时异常",e);
}finally {
IoUtil.close(outputStream);
IoUtil.close(bufferedOutputStream);
}
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.io.IoUtil.toBuffered(java.io.Reader)
方法描述
转换为{@link BufferedReader}
支持版本及以上
5.6.1
参数描述:
参数名 | 描述 |
---|---|
Reader reader |
reader {@link Reader}
|
返回值:
{@link BufferedReader}
参考案例:
Reader reader = null;
BufferedReader bufferedReader = null;
try {
reader = new StringReader("1hello 小虚竹\\n2hello 小虚竹");
bufferedReader = IoUtil.toBuffered(reader);
//读第一行数据
String str = "";
while (str != null){
str = bufferedReader.readLine();
if(str !=null){
System.out.println(str);
}
}
} catch (IOException e) {
//抛出一个运行时异常(直接停止掉程序)
throw new RuntimeException("运行时异常",e);
}finally {
IoUtil.close(reader);
IoUtil.close(bufferedReader);
}
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.io.IoUtil.toBuffered(java.io.Reader, int)
方法描述
转换为{@link BufferedReader}
支持版本及以上
5.6.1
参数描述:
参数名 | 描述 |
---|---|
Reader reader |
reader {@link Reader}
|
int bufferSize |
bufferSize buffer size
|
返回值:
{@link BufferedReader}
参考案例:
Reader reader = null;
BufferedReader bufferedReader = null;
try {
reader = new StringReader("1hello 小虚竹\\n2hello 小虚竹");
bufferedReader = IoUtil.toBuffered(reader,8192);
//读第一行数据
String str = "";
while (str != null){
str = bufferedReader.readLine();
if(str !=null){
System.out.println(str);
}
}
} catch (IOException e) {
//抛出一个运行时异常(直接停止掉程序)
throw new RuntimeException("运行时异常",e);
}finally {
IoUtil.close(reader);
IoUtil.close(bufferedReader);
}
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.io.IoUtil.toBuffered(java.io.Writer)
方法描述
转换为{@link BufferedWriter}
支持版本及以上
5.6.1
参数描述:
参数名 | 描述 |
---|---|
Writer writer |
writer {@link Writer}
|
返回值:
{@link BufferedWriter}
参考案例:
File dest = new File("C:\\\\Users\\\\Administrator\\\\Desktop\\\\xuzhu/toBufferedTest7.txt") ;
FileWriter fw = null;
BufferedWriter bufferedWriter = null;
try {
//创建流
fw = new FileWriter(dest);
bufferedWriter = IoUtil.toBuffered(fw);
String str = "toBufferedTest7 \\ntoBufferedTest7";
bufferedWriter.write(str);
bufferedWriter.flush();
} catch (IOException e) {
//抛出一个运行时异常(直接停止掉程序)
throw new RuntimeException("运行时异常",e);
}finally {
IoUtil.close(fw);
IoUtil.close(bufferedWriter);
}
源码解析:
链接:待补充
方法明细
方法名称:cn.hutool.core.io.IoUtil.toBuffered(java.io.Writer, int)
方法描述
转换为{@link BufferedWriter}
支持版本及以上
5.6.1
参数描述:
参数名 | 描述 |
---|---|
Writer writer |
writer {@link Writer}
|
int bufferSize |
bufferSize buffer size
|
返回值:
{@link BufferedWriter}
参考案例:
File dest = new File("C:\\\\Users\\\\Administrator\\\\Desktop\\\\xuzhu/toBufferedTest7.txt") ;
FileWriter fw = null;
BufferedWriter bufferedWriter = null;
try {
//创建流
fw = new FileWriter(dest);
bufferedWriter = IoUtil.toBuffered(fw,8192);
String str = "toBufferedTest7 \\ntoBufferedTest7";
bufferedWriter.write(str);
bufferedWriter.flush();
} catch (IOException e) {
//抛出一个运行时异常(直接停止掉程序)
throw new RuntimeException("运行时异常",e);
}finally {
IoUtil.close(fw);
IoUtil.close(bufferedWriter);
}
源码解析:
链接:待补充
方法明细
6hutool实战:IoUtil 流操作工具类(流的常用操作)
1hutool实战:IoUtil 流操作工具类(copy拷贝操作)
1hutool实战:IoUtil 流操作工具类(copy拷贝操作)
6hutool实战:IoUtil 流操作工具类(流的常用操作)