利用Lucene将大文档切割成多个小文档,(可运行)

这段代码,具体用的时候,我是修改了括号里的参数的类型,我想写的方法就是一个源文件

,一个目的文件,利用源文件调用方法,然后生成目标文件。

对原有的大文件进行切割,切割的大小是自己限定的最大的大小,

文件名字的序号就是:

从自然数的顺序,依次递增。

代码如下:

如需使用需要修改自己原文件的目录。

package comOne;

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 FileFenLei {public static void splitToSmallFils(String file, String outputpath){try{//文件计数器,用于文件名int filePointer = 0;//定义文件的最大长度int MAX_SIZE = 10240;//创建文件输出流BufferedWriter writer = null;//创建文件输入流BufferedReader reader =new BufferedReader(new FileReader(file));//建立字符串缓冲区,存储大文件中读取的数据StringBuffer buffer = new StringBuffer();String line = reader.readLine();//循环遍历读取的每行字符串while(line != null){//如果读取字符串不为空,则将字符串加入到缓冲区//并在每行字符串后面加上回车换行buffer.append(line).append("\r\n");//判断缓冲区长度是否达到文件最大长度if(buffer.toString().getBytes().length >= MAX_SIZE){//如果文件达到最大长度,则将缓冲区的数据写入文件//filePointer是文件名前缀的一部分writer = new BufferedWriter(new FileWriter(outputpath + "切分后" + filePointer + ".txt"));writer.write(buffer.toString());writer.close();//文件计数器加一filePointer++;//清空缓冲区数据buffer = new StringBuffer();}//如果没有达到文件的最大长度line = reader.readLine();}//如果大文件已经读取完毕,直接将缓冲区数据写入文件writer = new BufferedWriter(new FileWriter(outputpath + "切分后" + filePointer + ".txt"));writer.write(buffer.toString());writer.close();}catch(IOException e){e.printStackTrace();}}public static void main(String[] args){FileFenLei fenlei = new FileFenLei();fenlei.splitToSmallFils("E:\\Lucene项目\\钢铁是怎样练成的.txt", "E:\\Lucene项目\\切分后的文件夹\\");}}

,再长的路,一步步也能走完,再短的路,不迈开双脚也无法到达。

利用Lucene将大文档切割成多个小文档,(可运行)

相关文章:

你感兴趣的文章:

标签云: