File folder2 = new File("C:\\Users\\user\\fypworkspace\\TextRenderer");

File[] listOfFiles2 = folder.listFiles();
System.out.println("Please enter the required word  :");
    Scanner scan2 = new Scanner(System.in);
    String word2 = scan.nextLine();
    String [] array2 = word2.split(" ");



{
for (int i=0; i < listOfFiles.length; i++)
{
  if ((listOfFiles2[i].getName().endsWith(".txt")))
  {

      try
      {
      BufferedReader in= new BufferedReader(new FileReader(listOfFiles2[i].getName()));

      int numDoc = 0;

      Scanner s2 = new Scanner(listOfFiles2[i].getName());
      {
          while (s2.hasNext())
          {
              if (s2.next().equals(word2)) numDoc++;
          }

            System.out.println("The number of document containing the term is " + numDoc);

        }
        in.close();
    } catch (IOException e) {
    }


这是我的代码,用于计算包含特定术语的文档数量。
每当程序在文档中找到特定术语时,它将增加numDoc计数器。
但是,此代码不执行任何操作。我究竟做错了什么?

最佳答案

在整个代码中添加System.out.println()以输出重要信息以进行调试。
没有直接关系,但是可以使用Enhance for循环遍历文件。参见:http://download.oracle.com/javase/tutorial/java/nutsandbolts/for.html
总计的System.out.println位于循环中,完成所有文档的循环后,它应该位于循环中。
(也许是最重要的)您没有处理IOException。至少要打印出堆栈跟踪或来自异常的消息。

10-07 20:16
查看更多