File file = new File("");
   FileReader reader = new FileReader(file);
    char[] buf = new char[(int)file.length()];  
    int len = reader.read(buf);
    String results = new String(buf,0,len);
    System.out.print(results);
定义了一个buf数组长度为file.length,里面应该没有内容
reader.read(buf)是什么意思?
读文件的内容放到buf这个数组中,然后返回数组的长度?

解决方案 »

  1.   

    file.length是文件的字节长度
    reader.read(buf);是把文件按字符的方式读入到buf数组中
    返回成功读入的字符数,所以和file.length(也就是数组的长度)可能有出入,因为对于多字节字符,字符数和字节数不一样
      

  2.   

    file.length 是文件的的字节数,
    char[] buf = new char[(int)file.length()];   
      int len = reader.read(buf);创建数组,把文件内容读入数组,记录读取长度String results = new String(buf,0,len);
      System.out.print(results);
    截取字符串,全部的长度,输出文件的内容
      

  3.   

    阿宝说的对哟
     public String readText(String textname){  
            File file=new File(textPath+File.separator+textname);  
            try {  
                BufferedReader br = new BufferedReader(new java.io.FileReader(file));  
                StringBuffer sb = new StringBuffer();  
                String line = br.readLine();  
                while (line != null) {  
                    sb.append(line);  
                    line = br.readLine();  
                }  
                br.close();  
                return sb.toString();  
            } catch (IOException e) {  
                LogInfo.error(this.getClass().getName(),e.getLocalizedMessage(),e);  
                e.printStackTrace();  
                return null;  
            }  
        }  
        }  
    这样逐行读也行