当前位置:   article > 正文

Java常用类(四):IOUtils类

ioutils

目录

1. 什么是IOUtils类?

1.1 什么是Common IO

1.2 添加相关maven依赖

1.3 什么是IOUtils

2. IOUtils类常用方法

2.1 拷贝流

2.2 获取流

2.3  获取缓冲流

2.4 将输入流转换成字符串

2.5 将输入流转换成字符数组

2.6 字符串读写

2.7 从一个流中读取内容

2.8 把数据写入到输出流中

2.9 从一个流中读取内容,如果读取的长度不够,就会抛出异常

2.10 比较两个流是否相等

2.11 跳过执行长度的流

2.12 读取流,返回迭代器

2.13 关闭流


1. 什么是IOUtils类?

1.1 什么是Common IO

Common IO 是一个工具库,用来帮助开发IO功能。

包含了:IOUtils的使用,FileUtils的使用,FilenameUtils的使用

1.2 添加相关maven依赖

  1. <dependency>
  2.     <groupId>commons-io</groupId>
  3.     <artifactId>commons-io</artifactId>
  4.     <version>2.6</version>
  5. </dependency>

1.3 什么是IOUtils

IOUtils包含一些工具类,用于处理读,写和拷贝。这些方法基于InputStream,  OutputStream,  Reader 和 Writer工作。

2. IOUtils类常用方法

2.1 拷贝流

(1)IOUtils.copy(InputStream input, OutputStream output)

// 此方法有多个重载方法,满足不同的输入输出流

(2)IOUtils.copy(InputStream input, OutputStream output, int bufferSize)

(3)IOUtils.copy(InputStream input, Writer output, String inputEncoding)

(4)IOUtils.copy(Reader input, Writer output)

(5)IOUtils.copy(Reader input, OutputStream output, String outputEncoding)

// 这个方法适合拷贝较大的数据流,比如2G以上

(6)IOUtils.copyLarge(Reader input, Writer output) // 默认会用1024*4的buffer来读取

(7)IOUtils.copyLarge(Reader input, Writer output, char[] buffer)

2.2 获取流

(1)IOUtils.toInputStream(String input, String encoding)

// 通过文本获取输入流 , 可以指定编码格式

(2)IOUtils.toInputStream(String input, Charset encoding)

(3)IOUtils.toBufferedInputStream(InputStream input)

// 获取一个缓冲输入流,默认缓冲大小 1KB

(4)IOUtils.toBufferedInputStream(InputStream input, int size)

// 获取一个指定缓冲流的大小的输入流

(5)IOUtils.toBufferedReader(Reader reader)

// 获取一个字符缓冲流

(6)IOUtils.toBufferedReader(Reader reader, int size)

2.3  获取缓冲流

(1)IOUtils.buffer(InputStream inputStream)

(2)IOUtils.buffer(OutputStream outputStream)

(3)IOUtils.buffer(Reader reader)

(4)IOUtils.buffer(Writer writer)

2.4 将输入流转换成字符串

(1)IOUtils.toString(Reader input)

(2)IOUtils.toString(byte[] input, String encoding)

(3)IOUtils.toString(InputStream input, Charset encoding)

(4)IOUtils.toString(InputStream input, String encoding)

(5)IOUtils.toString(URI uri, String encoding)

(6)IOUtils.toString(URL url, String encoding)

2.5 将输入流转换成字符数组

(1)IOUtils.toByteArray(InputStream input)

(2)IOUtils.toByteArray(InputStream input, int size)

(3)IOUtils.toByteArray(URI uri)

(4)IOUtils.toByteArray(URL url)

(5)IOUtils.toByteArray(URLConnection urlConn)

(6)IOUtils.toByteArray(Reader input, String encoding)

2.6 字符串读写

(1)IOUtils.readLines(Reader input)

(2)IOUtils.readLines(InputStream input, Charset encoding)

(3)IOUtils.readLines(InputStream input, String encoding)

(4)IOUtils.writeLines(Collection<?> lines, String lineEnding, Writer writer)

(5)IOUtils.writeLines(Collection<?> lines, String lineEnding, OutputStream output,  Charset encoding)

(6)IOUtils.writeLines(Collection<?> lines, String lineEnding, OutputStream output, String encoding)

2.7 从一个流中读取内容

(1)IOUtils.read(InputStream input, byte[] buffer)

(2)IOUtils.read(InputStream input, byte[] buffer, int offset, int length)

(3)IOUtils.read(Reader input, char[] buffer)

(4)IOUtils.read(Reader input, char[] buffer, int offset, int length)

2.8 把数据写入到输出流中

(1)IOUtils.write(byte[] data, OutputStream output)

(2)IOUtils.write(byte[] data, Writer output, Charset encoding)

(3)IOUtils.write(byte[] data, Writer output, String encoding)

(4)IOUtils.write(char[] data, Writer output)

(5)IOUtils.write(char[] data, OutputStream output, Charset encoding)

(6)IOUtils.write(char[] data, OutputStream output, String encoding)

(7)IOUtils.write(String data, Writer output)

(8)IOUtils.write(CharSequence data, Writer output)

2.9 从一个流中读取内容,如果读取的长度不够,就会抛出异常

(1)IOUtils.readFully(InputStream input, int length)

(2)IOUtils.readFully(InputStream input, byte[] buffer)

(3)IOUtils.readFully(InputStream input, byte[] buffer, int offset, int length)

(4)IOUtils.readFully(Reader input, char[] buffer)

(5)IOUtils.readFully(Reader input, char[] buffer, int offset, int length)

(6)IOUtils.contentEquals(InputStream input1, InputStream input2) 

2.10 比较两个流是否相等

(1)IOUtils.contentEquals(Reader input1, Reader input2)

(2)IOUtils.contentEqualsIgnoreEOL(Reader input1, Reader input2)

// 比较两个流,忽略换行符

2.11 跳过执行长度的流

(1)IOUtils.skip(InputStream input, long toSkip)

// 跳过指定长度的流

(2)IOUtils.skip(Reader input, long toSkip)

(3)IOUtils.skipFully(InputStream input, long toSkip)

// 如果忽略的长度大于现有长度,就会抛出异常

(4)IOUtils.skipFully(Reader input, long toSkip)

 

2.12 读取流,返回迭代器

(1)IOUtils.lineIterator(Reader reader)

(2)IOUtils.lineIterator(InputStream input, Charset encoding)

(3)IOUtils.lineIterator(InputStream input, String encoding)

2.13 关闭流

IOUtils.close(URLConnection conn)

// 其他的关闭方法推荐使用 Closeable.close()

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号