(来自书中的代码)
主要思想:建立preprocess方法是为了建立splitToSmallFiles方法方便抛出异常
1.先建立字符缓冲输出流,在D/testforder/建立output.all,声明字符缓冲输入流读入D:/book.txt的
字符
2.读入一行数据直到遇到换行或回车,执行while循环判断是否读到文章末尾(即没有新的自然段),while
循环里是进行判断全角替换成半角。
3.如果字节数过多,则拆分成多个output文件
核心思想:
splitToSmallFiles的算法是
把改好的全角转半角文件作为函数参数File型传递进来进行读取,依次把每自然段加入到StringBuffer
的对象中,直到StringBuffer的字节数>10240则存储到testForder/output[filePointer]里。
charactorProcess是对文件的全角转换成半角
在replace函数中做一个map映射,针对全角符号设相应的半角符号value值。依次读取book.txt中的自然
段进行转换,所有自然段转换完毕后存储到output.all。
replace代码注释:
HashMap map = new HashMap();
map.put(",", ",");//作映射
map.put("。", ".");
map.put("〈", "<");
map.put("》", ">");
map.put("《", "<");
int length = line.length();//获取自然段的长度
for(int i =0;i<length;i++)
{
String charat = line.substring(i,i+1);//依次截取每个字符进行判断
if(map.get(charat)!=null)//如果找到的是字符
{
line=line.replace(charat, (String)map.get(charat));//调用String类自带的replace方法,把
所有的需要映射的对象进行替换
}
}