//问题是它一直为行和单词说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);
}
}
答案 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);
}
}