2015-11-23 38 views
0

我必須添加文件中的數字並平均它們的總和,並計算單詞的數量。到目前爲止,我有這個,但我得到一個錯誤,我得到了這個。我試圖讓它區分字母,但在第一次運行後出現錯誤從文件中添加數字和計算單詞

import javax.swing.JOptionPane; 
import java.util.Scanner; 
import java.io.*; 
    public class ReadTextFile 
{ 
public static void main (String[] args) throws IOException 
{ 
    String word, line, message, message2; 
    int number=0 , numword=0, numnum, numnum2, numnum3, av; 
    FileInputStream fis = new 
FileInputStream("C:\\Users\\Douglas\\Desktop\\payroll.txt"); 
    Scanner in = new Scanner (fis); 

    while (in.hasNext()) 
    { 
    numword++; 

    word = in.next(); 

    message2 = "The word is: "+word+"\n"; 

    JOptionPane.showMessageDialog (null, message2); 
    } 
    in.close(); 

    while(in.hasNextInt()) 
    { 
    numnum = in.nextInt(); 

    number++; 

    message = "The number is: "+numnum+"\n"; 

    numnum2=numnum; 

    numnum3= numnum+numnum2; 

    JOptionPane.showMessageDialog (null, message); 

    av=numnum3/number; 
    } 
    in.close(); 

    message = "The number of words processed was "+numword; 

    JOptionPane.showMessageDialog (null, message); 

    message2 = "The number of numbers processed was "+number+"and the average 
    was "+av; 

} 
} 
+0

請告訴我錯誤! –

回答

0

您在第一次循環後關閉掃描儀。然後在第二個循環中再次使用它。完成所有掃描後,請取出第一個關閉和關閉掃描儀。

in.close(); 
0

我讓代碼更具可讀性並且可以嘗試。

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

public class ReadTextFile { 
public static void main(String[] args) throws IOException { 
    String message, message2; 
    int number = 0, numnum =0, sum=0; 
    double av = 0.0; 
    FileInputStream fis = new FileInputStream("C:\\temp\\file.txt"); 
    Scanner in = new Scanner(fis); 

    while (in.hasNext()) { 
     number++; 
     numnum = in.nextInt(); 
     message = "The number is: " + numnum + "\n"; 
     JOptionPane.showMessageDialog(null, message); 

     sum += numnum; 
     av = sum/number; 
    } 

    message = "The number of words processed was " + number + " total is " +sum; 

    JOptionPane.showMessageDialog(null, message); 

    message2 = "The number of numbers processed was " + number 
      + " and the average was " + av; 
    JOptionPane.showMessageDialog(null, message2); 

} 
} 
相關問題