文本大文件按行读取 一个100M的文本文件通常办法,按行读取的话,一般不到2万行,内存就溢出了,有什么办法每处理1万行,就清除一下内存,然后再读取下一个一万行呢,或其它别的办法可以办到的也行,只要按行读取,内存不溢出,就可以了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 那就读1w行数据,放入一个集合,然后检验数据,导入数据库,最后给集合一个null,然后强制启动垃圾回收器来清理垃圾(System.gc())。楼主可以试试! 贴一下代码吧,不会出现你说的问题的。http://www.360doc.com/content/10/0803/13/2159920_43361828.shtmlhttp://yoctor.blog.163.com/blog/static/88551698200871111230444/ 要一行一行检查数据的话会不会很慢的。。不知道这样写符不符合你所说的:package csdn.javase.nioEx.ex2;import java.io.*;/** * * @author supercodingman * @version 1.0 */public class BasicFileOutput { static String file1 = "d:\\BasicFileReader.txt"; static String file2 = "d:\\BasicFileWriter.txt"; public static void main(String[] args) { try{ BufferedReader in = new BufferedReader( new FileReader(file1),10000);//10000不是指行数,是指缓冲区的大小 PrintWriter out = new PrintWriter( new BufferedWriter(new FileWriter(file2),10000));//同上 int lineCount = 1; String s ; while ((s = in.readLine()) != null){ System.out.println(s); //对s进行处理,我这里是把它写到另一个文件里去 out.println(s); } in.close(); out.close(); }catch(FileNotFoundException e){ System.out.println("File Not Found!"); }catch(IOException e){ System.out.println("IOException!"); e.printStackTrace(); }finally{ System.out.println("Done"); } }} 要一行一行检查数据的话会不会很慢的。。不知道这样写符不符合你所说的:package csdn.javase.nioEx.ex2;import java.io.*;/** * * @author supercodingman * @version 1.0 */public class BasicFileOutput { static String file1 = "d:\\BasicFileReader.txt"; static String file2 = "d:\\BasicFileWriter.txt"; public static void main(String[] args) { try{ BufferedReader in = new BufferedReader( new FileReader(file1),10000);//10000不是指行数,是指缓冲区的大小 PrintWriter out = new PrintWriter( new BufferedWriter(new FileWriter(file2),10000));//同上 int lineCount = 1; String s ; while ((s = in.readLine()) != null){ System.out.println(s); //对s进行处理,我这里是把它写到另一个文件里去 out.println(s); } in.close(); out.close(); }catch(FileNotFoundException e){ System.out.println("File Not Found!"); }catch(IOException e){ System.out.println("IOException!"); e.printStackTrace(); }finally{ System.out.println("Done"); } }} java中的list、map比较 jtable问题:对表格的内容修改时,为什么不触发相应的事件 eclipse CVS 同步问题 【hash】请问用长的字符串做哈希表的key会不会造成内存空间占用过多? 请问个为高手哪有mssqlserver的JDBC驱动程序可以下载呀! 请教一个简单问题:如何将一个String类型转换成Input Stream类型 java的线程问题 关于io的拷贝文件问题 谁能帮我解决这个this变量问题? 生成PDF数据流到客户端,在wsad下调试有错误,高手帮忙!! __面试题,高手低手都请进,在线等! Swing怎么释放内存
楼主可以试试!
import java.io.*;
/**
*
* @author supercodingman
* @version 1.0
*/
public class BasicFileOutput {
static String file1 = "d:\\BasicFileReader.txt";
static String file2 = "d:\\BasicFileWriter.txt";
public static void main(String[] args) {
try{
BufferedReader in = new BufferedReader(
new FileReader(file1),10000);//10000不是指行数,是指缓冲区的大小
PrintWriter out = new PrintWriter(
new BufferedWriter(new FileWriter(file2),10000));//同上
int lineCount = 1;
String s ;
while ((s = in.readLine()) != null){
System.out.println(s);
//对s进行处理,我这里是把它写到另一个文件里去
out.println(s);
}
in.close();
out.close();
}catch(FileNotFoundException e){
System.out.println("File Not Found!");
}catch(IOException e){
System.out.println("IOException!");
e.printStackTrace();
}finally{
System.out.println("Done");
}
}
}
package csdn.javase.nioEx.ex2;
import java.io.*;
/**
*
* @author supercodingman
* @version 1.0
*/
public class BasicFileOutput {
static String file1 = "d:\\BasicFileReader.txt";
static String file2 = "d:\\BasicFileWriter.txt";
public static void main(String[] args) {
try{
BufferedReader in = new BufferedReader(
new FileReader(file1),10000);//10000不是指行数,是指缓冲区的大小
PrintWriter out = new PrintWriter(
new BufferedWriter(new FileWriter(file2),10000));//同上
int lineCount = 1;
String s ;
while ((s = in.readLine()) != null){
System.out.println(s);
//对s进行处理,我这里是把它写到另一个文件里去
out.println(s);
}
in.close();
out.close();
}catch(FileNotFoundException e){
System.out.println("File Not Found!");
}catch(IOException e){
System.out.println("IOException!");
e.printStackTrace();
}finally{
System.out.println("Done");
}
}
}