Java常用类(四):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依賴
<dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.6</version> </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()
總結
以上是生活随笔為你收集整理的Java常用类(四):IOUtils类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: zz面试题小结
- 下一篇: java美元兑换,(Java实现) 美元