The Java file manipulation utility class implements copying files and file merging

  • 2020-04-01 03:01:45
  • OfStack

Two methods:
1. Copy all the files and folders under a directory
2. Merge all text files under one file directory into one file


package com.firewolf.test;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileReaderUtil {
 public static void main(String[] args){
  try {
   //MergeFile (new File("C:/Documents and Settings/liuxing0/ desktop/new folder /script"), new File("D:/all.sql");
   copyFiles(new File("G:/ Learning materials / notes "),new File("G:/Test"));
  } catch (IOException e) {
   e.printStackTrace();
  }
 }

 
 private static void copyFiles(File sourceFile,File desFile) throws IOException{
  if(sourceFile.isFile()){
   File file = new File(desFile.getPath()+"/"+sourceFile.getName());
   FileInputStream fis = new FileInputStream(sourceFile);
   FileOutputStream fos = new FileOutputStream(file);
   int len = 0;
   byte[] buf = new byte[1024];
   while((len = fis.read(buf)) != -1)
    fos.write(buf,0,len);
  }else{
   File dir = new File(desFile.getPath()+"/"+sourceFile.getName());
   if(!dir.exists())
    dir.mkdir();
   String[] names = sourceFile.list();
   for (int i = 0; i < names.length; i++) {
    copyFiles(new File(sourceFile.getPath()+"/"+names[i]),dir);
   }
  }
 }

 
 private static File mergeFile(File sourceFile,File decFile) throws IOException{
  String[] fileList = sourceFile.list();
  for (String string : fileList) {
   File file = new File(sourceFile.getPath()+"/"+string);
   if(!file.isDirectory()){

    FileInputStream fis = new FileInputStream(file);
    FileOutputStream fos = new FileOutputStream(decFile, true);
    byte[] buffer = new byte[1024];
    int len = 0;
    while((len= fis.read(buffer)) != -1)
     fos.write(buffer, 0, len);
   }
   else {
    decFile = mergeFile(file,decFile);
   }
  }
  return decFile;
 }
}


Related articles: