[code = java]
//把生成的mid_txt按照表名分成若干个小文件
File second = new File(path+mid_txt);
BufferedReader bw_2 = new BufferedReader(new FileReader(second));
//第一次循环
line = bw_2.readLine();
tablename = line.substring(0,4);
String formal = tablename;
path_2=path+tablename+".txt";
FileWriter third=new FileWriter(path_2);
third.write(line+"\r\n");
//继续循环
while((line = bw_2.readLine()) != null){
tablename = line.substring(0,4);
if(!tablename.equals(formal)){
third.close();
path_2=path+tablename+".txt";
third=new FileWriter(path_2);
}
formal=tablename;
third.write(line+"\r\n");
}
bw_2.close();
[/code]
path+mid_txt这个字符串指向的文件是一个有上千万条记录的TXT文件,每一行都是数字,是从小到大排列的(不一定连续),现在要求把这个文件分割,按照前四位的不同分割并新建文件。比如第一行记录前四位是0001,那么新建的文件就是0001.txt,然后把整行数据插入0001.txt
但是实现的时候出了点问题,那就是最后一行记录能建成TXT文件,但是不能插进去,我尝试了100W个数据,1000W个数据,总是少一个求帮助看看哪里出问题了,谢谢各位!!!
//把生成的mid_txt按照表名分成若干个小文件
File second = new File(path+mid_txt);
BufferedReader bw_2 = new BufferedReader(new FileReader(second));
//第一次循环
line = bw_2.readLine();
tablename = line.substring(0,4);
String formal = tablename;
path_2=path+tablename+".txt";
FileWriter third=new FileWriter(path_2);
third.write(line+"\r\n");
//继续循环
while((line = bw_2.readLine()) != null){
tablename = line.substring(0,4);
if(!tablename.equals(formal)){
third.close();
path_2=path+tablename+".txt";
third=new FileWriter(path_2);
}
formal=tablename;
third.write(line+"\r\n");
}
bw_2.close();
[/code]
path+mid_txt这个字符串指向的文件是一个有上千万条记录的TXT文件,每一行都是数字,是从小到大排列的(不一定连续),现在要求把这个文件分割,按照前四位的不同分割并新建文件。比如第一行记录前四位是0001,那么新建的文件就是0001.txt,然后把整行数据插入0001.txt
但是实现的时候出了点问题,那就是最后一行记录能建成TXT文件,但是不能插进去,我尝试了100W个数据,1000W个数据,总是少一个求帮助看看哪里出问题了,谢谢各位!!!
解决方案 »
- 关于session 和servletConntext
- 在线求翻译!关于Hibernate介绍(本来已翻译了部分,求补充),在线给分!!!!
- tomcat无法自启动!只能通过Myeclipse启动
- 关于struts2中getSession()为空的问题,求助。。
- Filter过滤登陆页面,不能跳转到登陆页面
- 请问如何从Hibernate里获取DataSource对象?
- **************************求助:做为一名优秀的J2EE程序员需要具备哪些UNIX知识****************************
- .net和j2ee 那个前景更好呢?
- 这是什么语言?什么意思?
- struts学习资料,要的请留EMAIL
- LinkedList对尾元素的操作
- 关于request的内置对象?
BufferedReader bw_2 = new BufferedReader(new FileReader(second));
//第一次循环
line = bw_2.readLine();
tablename = line.substring(0,4);
String formal = tablename;
path_2=path+tablename+".txt";
FileWriter third=new FileWriter(path_2);
third.write(line+"\r\n");
//继续循环
while((line = bw_2.readLine()) != null){
tablename = line.substring(0,4);
if(!tablename.equals(formal)){
third.close();
path_2=path+tablename+".txt";
third=new FileWriter(path_2);
}
formal=tablename;
third.write(line+"\r\n");
}
third.close();//这地方可能抛出异常 特别 try 下 不不必理会
bw_2.close();