文本文件合并
下午用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(); } }