文本文件合并

    下午用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();

    }



}

 

你可能感兴趣的:(文本文件)