-1

私がこれまでに持っているもの:

import java.io.*;
import java.util.*;
import javax.swing.JOptionPane;

public class FileEg
{
  public static void main (String [] args) throws Exception
  { int sum = 0, ctr = 0;
    double next;
    String line;
    String filename = "eg.txt";
    StringTokenizer st;
    PrintWriter outFile = new PrintWriter("eg.out");
    outFile.println("Output File");
    try
    { Scanner inFile = new Scanner(new FileReader (filename));
      while (inFile.hasNext())
      { line = inFile.nextLine();
        st = new StringTokenizer(line);
        while (st.hasMoreTokens())
        { next = Double.parseDouble(st.nextToken());
          sum += next;
          ctr++;
          outFile.println(next);          
        }
    }     
    outFile.println("number of integers read is " + ctr);
    outFile.println("average is " + sum/(double)ctr);
    outFile.close();
    }     //end of try
   catch(FileNotFoundException e)
   { System.out.println ("The file eg.dat was not found.");
   }
   catch(NumberFormatException e)
   { System.out.println ("sorry - number format error");
     System.out.println(e);
   }
  }
}

少なくとも2行、1行に複数の行がある出力を取得する必要があります。これまでのところ、出力ファイルではこのように出力されます。

出力ファイル

2.5

6.2

9.3

1.2

3.5

6.1

5.0

8.0

4.0 4.0

8.0

読み取られる整数の数は10で、平均は5.2です。

4

1 に答える 1

0

まだコメントを投稿できないので、回答リストを失礼します。しかし、JB Nizetがあなたにやらせようとしているのは、次のようなものだと思います(私はこれをテストしていませんが、近いはずです):

int numbCounter = 0;  
while (inFile.hasNext())     
  { line = inFile.nextLine();
    st = new StringTokenizer(line);
    while (st.hasMoreTokens())
    { next = Double.parseDouble(st.nextToken());
      sum += next;
      ctr++;
      if (numbCounter <5){
      outFile.print(next + " ");
      }
      else if(numbCounter == 5){
          outFile.println();
          outFile.print(next + " ");
      }
      else {
          outFile.print(next + " ");
      }

      numbCounter++;
    }
  }
于 2013-02-21T02:05:08.997 に答える