Java常用类(四):IOUtils类
目錄
1. 什么是IOUtils類(lèi)?
1.1 什么是Common IO
1.2 添加相關(guān)maven依賴(lài)
1.3 什么是IOUtils
2.?IOUtils類(lèi)常用方法
2.1 拷貝流
2.2 獲取流
2.3? 獲取緩沖流
2.4 將輸入流轉(zhuǎn)換成字符串
2.5 將輸入流轉(zhuǎn)換成字符數(shù)組
2.6 字符串讀寫(xiě)
2.7 從一個(gè)流中讀取內(nèi)容
2.8 把數(shù)據(jù)寫(xiě)入到輸出流中
2.9 從一個(gè)流中讀取內(nèi)容,如果讀取的長(zhǎng)度不夠,就會(huì)拋出異常
2.10 比較兩個(gè)流是否相等
2.11 跳過(guò)執(zhí)行長(zhǎng)度的流
2.12 讀取流,返回迭代器
2.13 關(guān)閉流
1. 什么是IOUtils類(lèi)?
1.1 什么是Common IO
Common IO 是一個(gè)工具庫(kù),用來(lái)幫助開(kāi)發(fā)IO功能。
包含了:IOUtils的使用,FileUtils的使用,FilenameUtils的使用
1.2 添加相關(guān)maven依賴(lài)
<dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.6</version> </dependency>1.3 什么是IOUtils
IOUtils包含一些工具類(lèi),用于處理讀,寫(xiě)和拷貝。這些方法基于InputStream,? OutputStream,? Reader?和?Writer工作。
2.?IOUtils類(lèi)常用方法
2.1 拷貝流
(1)IOUtils.copy(InputStream input, OutputStream output)
// 此方法有多個(gè)重載方法,滿(mǎn)足不同的輸入輸出流
(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)
// 這個(gè)方法適合拷貝較大的數(shù)據(jù)流,比如2G以上
(6)IOUtils.copyLarge(Reader input, Writer output) // 默認(rèn)會(huì)用1024*4的buffer來(lái)讀取
(7)IOUtils.copyLarge(Reader input, Writer output, char[] buffer)
2.2 獲取流
(1)IOUtils.toInputStream(String input, String encoding)
// 通過(guò)文本獲取輸入流 , 可以指定編碼格式
(2)IOUtils.toInputStream(String input, Charset encoding)
(3)IOUtils.toBufferedInputStream(InputStream input)
// 獲取一個(gè)緩沖輸入流,默認(rèn)緩沖大小 1KB
(4)IOUtils.toBufferedInputStream(InputStream input, int size)
// 獲取一個(gè)指定緩沖流的大小的輸入流
(5)IOUtils.toBufferedReader(Reader reader)
// 獲取一個(gè)字符緩沖流
(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 將輸入流轉(zhuǎn)換成字符串
(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 將輸入流轉(zhuǎn)換成字符數(shù)組
(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 字符串讀寫(xiě)
(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 從一個(gè)流中讀取內(nèi)容
(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 把數(shù)據(jù)寫(xiě)入到輸出流中
(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 從一個(gè)流中讀取內(nèi)容,如果讀取的長(zhǎng)度不夠,就會(huì)拋出異常
(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 比較兩個(gè)流是否相等
(1)IOUtils.contentEquals(Reader input1, Reader input2)
(2)IOUtils.contentEqualsIgnoreEOL(Reader input1, Reader input2)
// 比較兩個(gè)流,忽略換行符
2.11 跳過(guò)執(zhí)行長(zhǎng)度的流
(1)IOUtils.skip(InputStream input, long toSkip)
// 跳過(guò)指定長(zhǎng)度的流
(2)IOUtils.skip(Reader input, long toSkip)
(3)IOUtils.skipFully(InputStream input, long toSkip)
// 如果忽略的長(zhǎng)度大于現(xiàn)有長(zhǎng)度,就會(huì)拋出異常
(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 關(guān)閉流
IOUtils.close(URLConnection conn)
// 其他的關(guān)閉方法推薦使用 Closeable.close()
總結(jié)
以上是生活随笔為你收集整理的Java常用类(四):IOUtils类的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: zz面试题小结
- 下一篇: 计算机专业直接工作简历,计算机专业个人简