BufferedReader无法完整读取txt文件

lytyphoon1010 2010-10-12 02:06:04
我想用BufferedReader读取c盘下一个txt文件,但是总不能读取完整,一共1w+行,但是只能读取5k+行,不知道为什么?
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.ArrayList;
import java.util.List;

public class TestIO {
public static void main(String[] args)throws Exception{
List lineString=new ArrayList<String>();//存储文本每一行数据
List lineArr=new ArrayList<String []>();
int counter=0;//记录读取文件行数
//读取文本数据
//先建立一个文件对象,再建立一个缓冲读取器,封装对文本文件读取器,这样的读取器可以解决DataInputStream读取器读取中文乱码的问题
File file=new File("c:/20100920.txt");
BufferedReader in=new BufferedReader(new FileReader(file));
BufferedWriter out=new BufferedWriter(new FileWriter("c:/test.txt"));
while(in.read()!=-1){
String firstName=in.readLine();
System.out.println(in.readLine());
//解析每一行文本
String []a=firstName.split(",");
lineArr.add(a);
counter++;
}
in.close();
System.out.println(counter);
System.out.println("counter=="+counter);


}
}
...全文
312 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
lytyphoon1010 2010-10-12
  • 打赏
  • 举报
回复
明白了,谢谢!
readLine()调用了两次
但是用in.read()!=-1会使第一个字符丢失,所以我这样改了
String firstname=null;
while((firstname=in.readLine())!=null){
System.out.println(firstname);
}
茫茫大海 2010-10-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hack_ccsl 的回复:]

Java code

String firstName = "";
while((firstName = in.read())!=-1){
//String firstName=in.readLine();
System.out.println(in.readLine());
//解析每一行文……
[/Quote]
支持1楼的!
hack_ccsl 2010-10-12
  • 打赏
  • 举报
回复

String firstName = "";
while((firstName = in.read())!=-1){
//String firstName=in.readLine();
System.out.println(in.readLine());
//解析每一行文本
String []a=firstName.split(",");
lineArr.add(a);
counter++;
}

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧