文本文件合并

    下午用java写了一段把500个9M文本文件合成一个大文件,主要是文件读写方面的工作,合成之后是大概4.5g。

package mg;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class Merge {

    /**
     * @param args
     */
    
    private File[] fileList=null;
    private String path="E:/table";//文件所在的文件夹
    private File[] getFileList(File file){
        return file.listFiles();//返回文件夹中的所有文件的file
    }
    
    private String fileReader2String(File file){
        StringBuffer strBuf=new StringBuffer();
         BufferedReader reader=null;
         try {
            reader=new BufferedReader(new FileReader(file));
            String content=null;
             while((content=reader.readLine())!=null){
                 if(content.length()!=0)
                     strBuf.append(content+'\n');//读取每一行然后在后面加换行,如果写成'\n'则是unix系统文件换行,如果写成"\r\n"则是pc的文件结尾
             }
             reader.close();
         }catch(IOException e){
             e.printStackTrace();
         }
         return strBuf.toString();
    }
    
    public void fileWriter(){
        File file = new File(path);
        if (!file.exists()) {
            System.out.println("file \"" + path + "\" folder no exist");
        }
        try {
            this.fileList = this.getFileList(file);
            BufferedWriter output = new BufferedWriter(new FileWriter(new File(
                    "E:/merge.csv")));//合并后文件存储的地址
            
            for (File f : fileList) {
                System.out.println(f.getName());
                String str = this.fileReader2String(f);
                output.write(str, 0, str.length());
            }
            output.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        
    }
    
    
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        new Merge().fileWriter();
    }

}

 

posted @ 2013-06-29 17:40  AndyDHG  阅读(320)  评论(0编辑  收藏  举报