import java.io.*;
import java.util.Scanner;public class FileRd {
     public static void main(String[] agrs) throws Exception{
      File file=new File("e:\\111.txt");
      Scanner sc=new Scanner(file);
            int num=0;
      int sum=0;
      if(sc.hasNextLine()){
      sum=sum+sc.nextInt();
      num++;
      
      }
      System.out.println("文件中的数据总和为:"+sum);
      System.out.println("文件中数据的平均值为:"+sum/num);
      
     }
}
打印结果只读入了文件的第一行数据,为什么??不知道问题出在哪里

解决方案 »

  1.   

    import   java.io.*;
    import   java.util.Scanner;
    public   class   FileRd   {
              public   static   void   main(String[]   agrs)   throws   Exception{
              File   file=new   File("e:\\111.txt");
              Scanner   sc=new   Scanner(file);
                        int   num=0;
              int   sum=0;
              while (sc.hasNextLine()){ //if 改为 while
              sum=sum+sc.nextInt();
              num++;
             
              }
              System.out.println("文件中的数据总和为:"+sum);
              System.out.println("文件中数据的平均值为:"+sum/num);
             
              }
      

  2.   

    if(sc.hasNextLine()){ 
              sum=sum+sc.nextInt(); 
              num++; 
              
              } 
    用IF当然只读一次,要用循环来处理。先好好看看JAVA流程的语法吧
      

  3.   

    如果是文本格式的,如txt,log可以用readline,否则还是read(byte[])
      

  4.   

    改动后变为:
    import   java.io.*; 
    import   java.util.Scanner; 
    public   class   FileRd   { 
              public   static   void   main(String[]   agrs)   throws   Exception{ 
              File   file=new   File("e:\\111.txt"); 
              Scanner   sc=new   Scanner(file); 
              int   num=0; 
              int   sum=0; 
              while(sc.hasNextLine()){ 
              sum=sum+sc.nextInt(); 
              num++; 
              } 
              System.out.println("文件中的数据总和为:"+sum); 
              System.out.println("文件中数据的平均值为:"+sum/num); 
              
              }