System.out.println("Please enter the required word :");
Scanner scan = new Scanner(System.in);
String word = scan.nextLine();
String [] array = word.split(" ");
int filename = 500;
String[] fileName = new String [filename];
int a = 0;
try
{
for(a=0; a<filename; a++)
{
File file = new File("C:\\Users\\user\\fypworkspace\\TextRenderer\\abc" + a + ".txt");
System.out.println("File = abc" + a + ".txt");
for( int i=0; i<array.length; i++)
{
System.out.println(array[i]);
int totalCount = 0;
int wordCount = 0;
Scanner s = new Scanner(file);
{
while (s.hasNext())
{
totalCount++;
if (s.next().equals(array[i])) wordCount++;
}
System.out.println("Word count: " + wordCount);
System.out.println("Total count: " + totalCount);
System.out.printf("Term Frequency: %8.4f", (double) wordCount / totalCount);
输出:
File = abc4.txt
一 字数:2 总人数:119 期限频率:0.0168
约 字数:0 总人数:119 期限频率:0.0000
的 字数:3 总人数:119 期限频率:0.0252
File = abc5.txt 一个 字数:4 总人数:141 学期频率:0.0284
约 字数:0 总人数:141 期限频率:0.0000
的 字数:2 总人数:141 期限频率:0.0142
File = abc6.txt
一 找不到文件
在找不到特定文件后,代码停止。如何让它进入其他文件?此代码有2个额外的文件要处理,但遇到找不到文件时会停止。有什么建议吗?
答案 0 :(得分:1)
你应该像你这样在循环中捕获异常
for(a=0; a<filename; a++)
{
try{
Scanner s = new Scanner(file);
}catch{FileNotFoundException e){
// handle the exception
}
}
答案 1 :(得分:0)
将你的try / catch移到for循环中。
具体来说,您只希望将其包围在打开文件的尝试中。
答案 2 :(得分:0)
使用try{..} catch ()
(请参阅sun tutorial)。
答案 3 :(得分:0)
您的代码段似乎不完整,但看起来您在for循环周围有一个try / catch对。您可能需要在for循环中使用另一个try / catch块。您可以让它捕获FileNotFoundException或更常见的异常,并允许循环继续而不会中断。
答案 4 :(得分:0)
它没有继续的原因是异常中断循环,因为它被捕获到循环之外。你需要在循环中放置(或移动)try / catch块。
for(a=0; a<filename; a++) {
try {
...
} catch (IOException ex) {
// handle exception
}
}