- 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/桌面/新建文件夹/script"), new File("D:/all.sql"));
- copyFiles(new File("G:/学习资料/笔记"),new File("G:/Test"));
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- /**
- * 拷贝某个文件目录下面的所有文件,
- * @param sourcePath 原文件目录
- * @param desPath 目的文件目录
- */
- 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);
- }
- }
- }
- /**
- * 将一个文件目录下面的所有文件独到一个文件中的方法(主要用于将很多文本文件合并到一起)
- * @param sourceFile
- * @param decFile
- * @return
- * @throws IOException
- */
- 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;
- }
- }
- //该片段来自于http://www.codesnippet.cn/detail/1404201512257.html
来源: http://www.codesnippet.cn/detail/1404201512257.html