文件未在if语句

时间:2016-01-22 20:00:16

标签: java file if-statement

我正在尝试删除< 100字。我有int名为words,它会对每个文本文件中的单词进行计数,并显示每个文本文件的数量。 TXTResultsFile指定保存文本文件的位置。这很好用!我有一个如下所示的if语句,但它不会删除< 100字。我运行时没有错误,但它也没有删除文本文件。谢谢!

String s = "";
int words = 0;

while ((s = br.readLine()) != null) {                   

    String[] lineWordList = s.split(" ");                   
    words = words + lineWordList.length;

}

System.out.println ("Total Number of Words for " +TXTResultsFile  + " = " + words); 

if (words > 100){ 
    System.out.println ("Keep this text file");
}
else {
    file.delete();
    System.out.println("File has been deleted");    
}

2 个答案:

答案 0 :(得分:4)

因为该文件已经打开。在删除之前关闭使用该文件的流。

else {
    br.close();
    file.delete();
    System.out.println("File has been deleted");

}

答案 1 :(得分:1)

当文件流打开时,您无法删除Java正在使用的文件。我假设file是一个开放流,并且代码不起作用是有意义的。

要解决此问题,请在file.delete();语句前使用:file.close();关闭流。这将关闭流并允许删除文件。