在實際專案中,在處理較大的檔案時,常常將檔案拆分為多個子檔案進行處理,最後再合併這些子檔案。以下就為各位介紹下Java中合併多個文件的方法。
Java中合併子檔案最容易想到的就是利用BufferedStream來讀寫。
具體的實作方式如下,程式碼很詳細,供各位參考學習。
1、先建立mergeFiles方法,接收字串陣列和字串參數,並完成檔案合併功能
public static boolean mergeFiles(String[] fpaths, String resultPath) { if (fpaths == null || fpaths.length < 1 || TextUtils.isEmpty(resultPath)) { return false; } if (fpaths.length == 1) { return new File(fpaths[0]).renameTo(new File(resultPath)); } File[] files = new File[fpaths.length]; for (int i = 0; i < fpaths.length; i ++) { files[i] = new File(fpaths[i]); if (TextUtils.isEmpty(fpaths[i]) || !files[i].exists() || !files[i].isFile()) { return false; } } File resultFile = new File(resultPath); try { int bufSize = 1024; BufferedOutputStream outputStream = new BufferedOutputStream(new FileOutputStream(resultFile)); byte[] buffer = new byte[bufSize]; for (int i = 0; i < fpaths.length; i ++) { BufferedInputStream inputStream = new BufferedInputStream(new FileInputStream(files[i])); int readcount; while ((readcount = inputStream.read(buffer)) > 0) { outputStream.write(buffer, 0, readcount); } inputStream.close(); } outputStream.close(); } catch (FileNotFoundException e) { e.printStackTrace(); return false; } catch (IOException e) { e.printStackTrace(); return false; } for (int i = 0; i < fpaths.length; i ++) { files[i].delete(); } return true; }
2、然後在main函數中對mergeFiles方法進行調用,使用時傳入多個檔案的位址數組,並傳入輸出檔案位址即可。
public static void main(String[] args) { mergeFiles(new String[]{"D:/in_1.txt", "D:/in_2.txt", "D:/in_3.txt"}, "D:/output.txt"); }
(相關影片教學分享:java影片教學)
以上是java如何合併多個文件的詳細內容。更多資訊請關注PHP中文網其他相關文章!