BufferedReader 读取文件不完整

llyzq 2009-09-27 12:36:34
我用BufferedReader 读取一个文件,读取后做一定处理再写入另一个文件。
但每次执行时BufferedReader 读取总是不能把文件读完整。

代码如下:


String sPath = "Date//";
File file = new File("E:\\Work\\Workspace\\AmarGCI\\data\\BusinessInfo.dat");
File filebak = new File("E:\\Work\\Workspace\\AmarGCI\\data\\BusinessInfo.dat"+".bak");
file.renameTo(filebak);

int i = 0;

String sNewDuebillNo = "",s = "";
try{
BufferedReader br = new BufferedReader(new FileReader(filebak));
BufferedWriter bw = new BufferedWriter(new FileWriter(file));
do{
s = br.readLine();

//处理文件内容
sNewDuebillNo = processDuebillNo(s.substring(0, s.indexOf("|")),"");
i ++;
System.out.println(i);
bw.write(sNewDuebillNo + s.substring(s.indexOf("|"))+"\n");
}while(br.readLine() != null);

bw.flush();

}catch(Exception e){
e.printStackTrace();
}

String sPath = "Date//";
File file = new File("E:\\Work\\Workspace\\AmarGCI\\data\\BusinessInfo.dat");
File filebak = new File("E:\\Work\\Workspace\\AmarGCI\\data\\BusinessInfo.dat"+".bak");
file.renameTo(filebak);

int i = 0;

String sNewDuebillNo = "",s = "";
try{
BufferedReader br = new BufferedReader(new FileReader(filebak));
BufferedWriter bw = new BufferedWriter(new FileWriter(file));
do{
s = br.readLine();

//处理文件内容
sNewDuebillNo = processDuebillNo(s.substring(0, s.indexOf("|")),"");
i ++;
System.out.println(i);
bw.write(sNewDuebillNo + s.substring(s.indexOf("|"))+"\n");
}while(br.readLine() != null);

bw.flush();

}catch(Exception e){
e.printStackTrace();
}

...全文
469 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
llyzq 2009-09-27
  • 打赏
  • 举报
回复
明白了,谢谢!!
gukuitian 2009-09-27
  • 打赏
  • 举报
回复
看看这样

while((s=br.readLine()) != null){

//处理文件内容
sNewDuebillNo = processDuebillNo(s.substring(0, s.indexOf("|")),"");
i ++;
System.out.println(i);
bw.write(sNewDuebillNo + s.substring(s.indexOf("|"))+"\n");
}


gukuitian 2009-09-27
  • 打赏
  • 举报
回复
你是是隔一行一读的。

62,612

社区成员

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

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