计数行字符和文件未发现异常java eclipse。

时间:2014-03-31 15:34:04

标签: java eclipse filenotfoundexception counting

//问题是它一直为行和单词说0。它虽然正确地计算了字符。我真的不确定如何添加FileNotFoundException。我的老师甚至没有教我们的课。我班上的每个人都在苦苦挣扎:(

 import java.util.*;
 import java.io.*;

public class FileReader
{  
public static void main(String[]args) throws FileNotFoundException        
{ 
        Scanner console = new Scanner(System.in);           

        System.out.println("File to be read: ");
        String inputFile = console.next();

        File file = new File(inputFile);
        Scanner in = new Scanner(file);

        int words = 0;
        int lines = 0;
        int chars = 0;

        in = new Scanner(file);
        while(in.hasNext())
        {
            in.next();
            chars++;
        }
        in = new Scanner(file);
        while(in.hasNextLine())
        {
            in.nextLine();
            lines++;
        }
        in = new Scanner(file);
        while(in.hasNextByte())
        {
            in.nextByte();
            words++;
        }

        System.out.println("Number of lines: " + lines);
        System.out.println("Number of characters: " + chars);
        System.out.println("Number of words: " + words);
}
}

2 个答案:

答案 0 :(得分:0)

不是抛出异常总是试图捕获异常。将整个主代码放在try块中,并捕获catch块中的所有异常。 java中的异常处理很容易。关于try catch的小教程可以为您提供更多帮助。

您正在获取FileNotFoundException,因为您没有指定文件的完整路径。 File f = new File(complete/path/of/file);

console.next()只会为您提供输入控制台但不包含整个路径的文本。

我建议您使用完整路径创建一个字符串并将其提供给File()。

我认为这个解释对你的作业来说太过分了;)

希望这会有所帮助。

答案 1 :(得分:0)

在第一个while循环中,您实际上正在计算单词数,但将其分配给字符。从这个循环本身的每个单词的长度可以很容易地计算出字符数。

import java.util.*;
import java.io.*;

public class FileReader {
    public static void main(String[] args) throws FileNotFoundException {
        Scanner console = new Scanner(System.in);

        System.out.println("File to be read: ");
        String inputFile = console.next();

        File file = new File(inputFile);
        Scanner in = new Scanner(file);

        int words = 0;
        int lines = 0;
        int chars = 0;

        in = new Scanner(file);
        while (in.hasNext()) {
            chars += in.next().length();
            words++;
        }
        in = new Scanner(file);
        while (in.hasNextLine()) {
            in.nextLine();
            lines++;
        }

        /*
         * in = new Scanner(file); while(in.hasNextByte()) { in.nextByte();
         * words++; }
         */

        System.out.println("Number of lines: " + lines);
        System.out.println("Number of characters: " + chars);
        System.out.println("Number of words: " + words);
    }
}