2015-11-23 7 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); 

} 
} 
Смежные вопросы