A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 iFmmer 于 2015-6-23 20:19 编辑
  1. import java.io.*;
  2. //统计文件字符数代码

  3. public class testFileSelect {
  4.         public static void main(String args[]){
  5.                 File file = new File("D:\\Workspaces\\MyEclipse 10\\test233\\src\\testText.txt");
  6.                 int sum;
  7.                 sum = fileLength(file);
  8.                 System.out.println(sum);
  9.                
  10.         }
  11.         //统计函数
  12.         static int fileLength(File file){
  13.                 String line = null;
  14.                 int num = 0;
  15.                 BufferedReader br = null;
  16.                 BufferedWriter bw = null;
  17.                 try{
  18.                         br = new BufferedReader(new FileReader(file));
  19.                         //没有删除这句和与其相关联的代码,文件会被覆盖。
  20.                         bw = new BufferedWriter(new FileWriter(file));
  21.                         char temp[] = new char[1024];
  22.                         while(br.read()!=-1){
  23.                                 num++;
  24.                         }
  25.                 }catch(IOException e){
  26.                         e.printStackTrace();
  27.                 }finally{
  28.                         try {
  29.                                 if(br!=null)
  30.                                         br.close();
  31.                         } catch (IOException e) {
  32.                                 throw new RuntimeException("关闭输入流失败");
  33.                         }
  34.                         try{
  35.                                 if(bw!=null)
  36.                                         bw.close();
  37.                         } catch(IOException e){
  38.                                 throw new RuntimeException("关闭输出流失败");
  39.                         }
  40.                 }
  41.                 return num;
  42.         }
  43. }
复制代码


不知道为什么 去掉了Writer之后文件就没有问题了,带着Writer的时候,程序运行结果为0,文件内容也没了。
是因为其中的某个类的某个函数会让文件内容清空吗?我记得老师讲过类似的东西,但是我忘记是那个东西了,求解!

评分

参与人数 1技术分 +1 收起 理由
lwj123 + 1

查看全部评分

2 个回复

正序浏览
guiqulaixi 发表于 2015-6-23 13:26
。。。。。。。。。你是要读文件啊,大哥,你没事写什么new FileWriter(file),那个会把源文件内容覆盖掉 ...

那个FileWriter是为了之后的代码准备的,因为这个代码没写完 所以我题目就说的是读取数量,其实不是!后面还有操作呢,我没写!FileWriter会覆盖源文件是吗,好的谢谢你!
回复 使用道具 举报
。。。。。。。。。你是要读文件啊,大哥,你没事写什么new FileWriter(file),那个会把源文件内容覆盖掉
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马