2016-01-22 76 views
1

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

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");  
} 
+0

什么是'文件'? – OPK

+3

阅读File.delete()的javadoc以了解它的功能。改为使用https://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html#delete%28java.nio.file.Path%29。 –

+0

抱歉的文件是:'file = new File(TXTResultsFile);' –

回答

4

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

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

} 
1

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

若要消除此问题,请在file.delete();声明前关闭流:file.close();。这将关闭流并允许删除文件。