Java本身的IO就可以完成許多操作,但是往往要實現的話需要很長的代碼,以及各個類的使用。簡而言之就是可以實現,但是特別麻煩。
這是我們可以用第三方的包輕松實現,這次要使用的是Apache的io包。
1、首先我們需要到Apache的官網(www.apache.org)上下載Apache的包打開官網找到 Project
或者直接下拉到底部
找到Commons
單擊打開找到左側的 Components——>IO
單擊左側的Download 就可以下載相關的源碼(Source)和可執行文件(Binaries)
這里要注意的一點是不同的版本對jdk版本是有要求的!分別是:
Commons IO 2.4 (requires JDK 1.6+)
Commons IO 2.2 (requires JDK 1.5+)
Older Releases
我這里下載的是commons-io-2.4-bin.zip
2、到目前為止僅僅是完成了准備工作,接下來就是相關的代碼,首先要在eclipse中導入Apache的包(關於eclipse中怎么導入包就不說了)
Apache的commons-io-2.4包中類和方法過多就不一一演示,這里只演示將文本文檔中的數據獨處並存入String類型變量和文件拷貝。
(1)讀取文本文檔:
我們需要用的是文件工具類FileUtils,查看API文檔查看用法
public static String readFileToString(File file,String encoding) throws IOException
readToString為靜態方法可以直接通過類名調用,參數分別為文件和編碼,關於編碼Windows用的是“GBK”,
而Unix和Linux基本上用的是“UTF-8”具體根據自己的操作系統(所讀取的文件編碼)確定。
代碼:
1 import java.io.File; 2 import java.io.IOException; 3 import org.apache.commons.io.FileUtils; 4 5 public class ApacheDemo { 6 7 public static void main(String[] args) { 8 File file = new File("test.txt"); 9 try { 10 String input = FileUtils.readFileToString(file,"GBK"); //FileUtils中的方法為靜態方法,通過類名直接調用 11 System.out.println(input); 12 } catch (IOException e) { 13 e.printStackTrace(); 14 } 15 16 } 17 18 }
(2)文件拷貝:
同樣用的文件工具類FileUtils,通過API文檔查看方法
public static void copyFile(File srcFile, File destFile) throws IOException
同樣為靜態方法只需要通過類名來調用就行了參數分別為輸入,輸出的文件。
代碼:
1 import java.io.File; 2 import java.io.IOException; 3 import org.apache.commons.io.FileUtils; 4 5 public class ApacheDemo { 6 7 public static void main(String[] args) { 8 File file = new File("test.txt"); 9 File newfile = new File("new_file.txt"); 10 try { 11 FileUtils.copyFile(file, newfile); 12 } catch (IOException e) { 13 e.printStackTrace(); 14 } 15 16 } 17 18 }
Apache的包中還提供了許許多多的IO流操作的類和方法,這些類和方法使用起來基本上很簡單,通過類名和方法名基本上就能了解到其作用,通過參數能了解其使用方法。
最后本人也是在學習java中如果其中有任何錯誤或是見解不同的地方歡迎留言討論。