VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 801|回复: 5

关于线程?????

[复制链接]

4

主题

5

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
发表于 2020-1-5 18:00:01 | 显示全部楼层 |阅读模式
import java.io.*;
class FileTest{
        public static void main(String [] args) throws Exception{
         File f=new File("1.txt");
         f.createNewFile();
         f.deleteOnExit();
         Thread.sleep(30000);/*这句代码,我想应该是Thread.sleep(3000);再f.deleteOnExit();而不是现在这样,怎么成了现在这种先脱出再睡眠三秒钟呢????*/
         
       
         
        }
}
请大家帮我看看那个问题……               
回复

使用道具 举报

4

主题

5

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
 楼主| 发表于 2020-1-6 06:39:01 | 显示全部楼层
我再补充下:教材中说“调用这个方法f.deleteOnExit();后,让线程休眠下”
怎么回事呢???
回复

使用道具 举报

1

主题

2

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-1-6 08:33:01 | 显示全部楼层
你想问什么?它的意思应该是30秒之后退出,给你时间让你亲眼看到这个file被删除吧
如果线程不sleep的话,可能你还没看到效果,程序就已经执行完毕了
回复

使用道具 举报

0

主题

6

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-1-11 08:00:01 | 显示全部楼层
楼上说的对,deleteonexit()是退出时删除,它给你30秒时间我估计是怕给你3秒你还没找到那个文件它就删完了!
回复

使用道具 举报

1

主题

11

帖子

11.00

积分

新手上路

Rank: 1

积分
11.00
发表于 2020-1-11 09:45:02 | 显示全部楼层
不错
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-1-11 12:00:02 | 显示全部楼层
deleteOnExit
public void deleteOnExit()在虚拟机终止时,请求删除此抽象路径名表示的文件或目录。仅在虚拟机正常终止时,才会试图执行删除操作,这在 Java Language Specification 中已定义。
一旦已经请求执行删除操作,就无法取消该请求。所以应小心使用此方法。

注:此方法不应 用于文件锁定,因为所得到的协议可能无法可靠地工作。应该使用 FileLock 设施替代。


抛出:
SecurityException - 如果存在安全管理器,且其 SecurityManager.checkDelete(java.lang.String) 方法拒绝对文件进行删除访问
从以下版本开始:
1.2
另请参见:
delete()
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表