概述
在開發(fā)過程中担忧,你肯定遇到過從流中解析數(shù)據(jù),或者把數(shù)據(jù)寫入流中养匈,或者輸入流轉(zhuǎn)換為輸出流哼勇,而且最后還要進行流的關(guān)閉,原始jdk自帶的方法寫起來太復(fù)雜呕乎,還要注意各種異常积担,如果你為此感到煩惱,那IOUtils可以讓我們優(yōu)雅的操作流猬仁。
1.從流中讀取數(shù)據(jù)
FileInputStream fileInputStream = new FileInputStream(new File("d://demo.txt"));
List<String> list = IOUtils.readLines(fileInputStream, "UTF-8");//只要是InputStream流都可以帝璧,比如http響應(yīng)的流
//直接把流讀取為String
String content = IOUtils.toString(inputStream,"UTF-8");
//把流轉(zhuǎn)換為byte數(shù)組
byte[] bytes = IOUtils.toByteArray(inputStream);
2.把數(shù)據(jù)寫入流
//把數(shù)據(jù)寫入輸出流
IOUtils.write("abc", outputStream);
//把字符串轉(zhuǎn)換流
InputStream inputStream = IOUtils.toInputStream("aaaaaaaaa", "UTF-8");
2.流的相互復(fù)制
IOUtils.copy(inputstream,outputstream);
IOUtils.copy(inputstream,writer);
IOUtils.copy(inputstream,writer,encoding);
IOUtils.copy(reader,outputstream);
IOUtils.copy(reader,writer);
IOUtils.copy(reader,writer,encoding);
2.流的關(guān)閉
try {
return IOUtils.copy(inputStream, outputStream);
} finally {
//優(yōu)雅的關(guān)閉流
IOUtils.closeQuietly(inputStream);
IOUtils.closeQuietly(outputStream);
}