即使在循环中找不到遇到的文件,如何继续处理?

时间:2011-03-08 15:04:08

标签: java exception-handling

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个额外的文件要处理,但遇到找不到文件时会停止。有什么建议吗?

5 个答案:

答案 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
    }
}