问一个java程序中的函数之间互相影响的问题。

来源:百度知道 编辑:UC知道 时间:2024/07/02 22:46:34
public static void main (String args[]) throws IOException, InterruptedException
{
Frequency fc =new Frequency();
fc.NumofFile("回国","J:/人物事件摘要/刘翔/",filedir);
//Thread.sleep(5000);
fc.delAllFile("C:/cache");
}

事情是这样的,上面main函数中,一共调用了两个函数,如果不调用第一个NumofFile(),那么我试过了,delAllFile("C:/cache")是可以把文件里的文件全部删除的。但是调用了NumofFile()之后,就不行了,每次都会剩下几个,而且剩下的几个还不固定,每次都剩下三到五个不等。

NumofFile(),是一个把其他文件抽取整理到C:/cache文件夹下的一个程序。

我想问问大侠们,如果遇到过这种情况,最后找到是什么原因呢?

你看看是不是NumofFile()这个里面你打开了什么连接没有关闭啊?

比如说有open()没有close(),文件读写啊,数据库连接啊,如果没有关闭就会

出现删除不了的情况

上次我写一个程序,打开后没有关闭,后来删除不了,仔细检看了,后来发现

没有关,加上close之后就好了

你再看看吧,希望能对你有帮助。呵呵,早日成功哦

所谓的多线程是cpu自动为每个线程分配时间片
但不是固定的
所以一个线程执行完了要close()
剩下那个线程才可以执行结束

又两种可能: 一种是NumofFile数据写入了流中但是这个时候还没写入文件,等你删除完了,他才写入文件的。
另外一种就是楼上说的那种了,流没有关掉,所以文件不能删除,就像windows里文件在使用的时候不能删除一样。