码迷,mamicode.com
首页 > Web开发 > 详细

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

时间:2015-03-15 15:23:12      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:

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

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

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

文件名字的序号就是:

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

代码如下:

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

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将大文档切割成多个小文档,(可运行)

标签:

原文地址:http://blog.csdn.net/u012965373/article/details/44276509

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!