特定のテキスト ファイル内の単語、音節、文の数を計算するプログラムを作成しています。これらの数字を見つけるのに助けは必要ありませんが、ファイル名を正しく入力しても、私のプログラム (現在はテキスト ファイル内の単語数のみを見つける必要があります) はテキスト ファイルをインポートしません。テキスト ファイルは、ソース コードと同じフォルダーにあります。代わりに、入力したファイルの拡張子が間違っていることが毎回通知され (catch{} を参照)、null ポインターがスローされます。何が原因なのか途方に暮れています。助言がありますか?
import java.io.*;
import java.util.*;
public class Reading_Lvl_Calc {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int words = 0;
String fileName;
Scanner scan;
Scanner keyread = new Scanner(System.in);
System.out.println("Please enter a file name (or QUIT to exit)");
fileName = keyread.nextLine();
File doc = new File(fileName);
//while(scan.equals(null)){
try
{
scan = new Scanner(doc);
}
catch(Exception e)
{
if(fileName.substring(fileName.indexOf(".")) != ".txt")
System.out.println("I'm sorry, the file \"" + fileName + "\" has an invalid file extension.");
else
System.out.println("I am sorry, the file \"" + fileName + " \" cannot be found.\n The file must be in the same directory as this program");
scan = null;
}
// }
while(scan.hasNext()){
words++;
scan.next();
}
System.out.println(words);
}
}