學習Apache common-io工具類
阿新 • • 發佈:2019-02-06
1、前言
工具類總是可以提高開發者的效率,今天學習一下Apache關於IO的工具類,所謂Apache出品必是精品,那可得好好學習學習。
2、maven依賴
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.5</version>
</dependency>
3、FileUtils學習
/** * FileUtils 測試 * */ @Test public void fileTest01() throws IOException{ /* * 通過絕對路徑獲取file物件(原來是通過new File實現的) * File file = FileUtils.getFile(SRC_FILE_URL); * */ //實現檔案複製 FileUtils.copyFile(FileUtils.getFile(SRC_FILE_URL), FileUtils.getFile(DEST_FILE_URL)); System.out.println("copy OK"); } /** * fileTest02 通過File檔案讀取檔案內容 * * Charset.defaultCharset(): 先按照JVM虛擬機器的配置編碼解碼,如果不支援,則使用UTF-8編碼 */ @Test public void fileTest02() throws IOException{ String content = FileUtils.readFileToString(FileUtils.getFile(SRC_FILE_URL), Charset.defaultCharset()); System.out.println(content); } /** * 直接指定編碼格式 */ @Test public void fileTest03() throws IOException{ String content = FileUtils.readFileToString(FileUtils.getFile(SRC_FILE_URL), "UTF-8"); System.out.println(content); } /** * 複製圖片 */ @Test public void fileTest04() throws IOException{ FileUtils.copyFile(FileUtils.getFile(SRC_IMG_URL), FileUtils.getFile(DEST_IMG_URL)); System.out.println("copy OK"); }
4、IOUtils學習
/** * IOUtils 測試 * */ @Test public void IOTest01() throws IOException{ //通過IO流讀取檔案內容 FileInputStream input = new FileInputStream(SRC_FILE_URL); //按行讀取 List<String> readLines = IOUtils.readLines(input, "UTF-8"); for (String content : readLines) { System.out.println(content); System.out.println("-------------------"); } //建立的流必須關閉 IOUtils.closeQuietly(input); } /** * 通過流獲取檔案,直接獲取檔案內容,返回值型別String */ @Test public void IOTest02() throws IOException{ FileInputStream input = new FileInputStream(SRC_FILE_URL); String content = IOUtils.toString(input, "UTF-8"); System.out.println(content); IOUtils.closeQuietly(input); } /** * 獲取流檔案指定的位元組資料,注意:不會獲取所有的位元組數 */ @Test public void IOTest03() throws IOException{ FileInputStream input = new FileInputStream(SRC_FILE_URL); byte[] byteArray = IOUtils.toByteArray(input, 50); System.out.println(new String(byteArray)); IOUtils.closeQuietly(input); } /** * 獲取流檔案的位元組資料 */ @Test public void IOTest04() throws IOException{ FileInputStream input = new FileInputStream(SRC_FILE_URL); byte[] byteArray = IOUtils.toByteArray(input); System.out.println(new String(byteArray)); IOUtils.closeQuietly(input); } /** * 獲取流檔案內容,將檔案內容通過流轉化成位元組資料 */ @Test public void IOTest05() throws IOException{ String content = FileUtils.readFileToString(FileUtils.getFile(SRC_FILE_URL), Charset.defaultCharset()); InputStream inputStream = IOUtils.toInputStream(content, "UTF-8"); byte[] byteArray = IOUtils.toByteArray(inputStream); System.out.println(new String(byteArray)); IOUtils.closeQuietly(inputStream); } /** * 通過URL和IO將網路圖片轉化成base64編碼字串 */ @Test public void IOTest06() throws IOException{ URL imgUrL = new URL("https://gss0.baidu.com/9fo3dSag_xI4khGko9WTAnF6hhy/zhidao/wh%3D800%2C450/sign=558b005097504fc2a20ab80dd5edcb25/08f790529822720e76566ea277cb0a46f31fabca.jpg"); byte[] byteArray = IOUtils.toByteArray(imgUrL); Encoder encoder = Base64.getEncoder(); String encodeToString = encoder.encodeToString(byteArray); System.out.println("data:image/jpeg;base64,"+ encodeToString); } /** * 將流轉化成Base64編碼字串 */ @Test public void IOTest07() throws IOException{ FileInputStream input = new FileInputStream(FileUtils.getFile(SRC_IMG_URL)); byte[] byteArray = IOUtils.toByteArray(input); Encoder encoder = Base64.getEncoder(); String encodeToString = encoder.encodeToString(byteArray); System.out.println("data:image/jpeg;base64,"+ encodeToString); }
5、後記
Apache common-io工具類還有很多方法,這裡值展示了部分常用的工具類。其他的工具類可參照官網後者其他技術部落格
6、參考文獻
官網:
http://commons.apache.org/proper/commons-io/download_io.cgi
http://commons.apache.org/proper/commons-io/javadocs/api-release/index.html