A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© G_wei 黑马帝   /  2011-9-5 20:40  /  1703 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

[code=java]import java.io.*;
import java.util.*;
public class FileTest {
       
        /**
         * Method main
         *
         *
         * @param args
         *
         */
        public static void main(String[] args) {
                // TODO: 在这添加你的代码
                File f = new File("1.txt");
                if(f.exists())
                {
                        f.delete();
                }
                else
                {
                        try
                        {
                       
                        f.createNewFile();
                        }
                        catch(Exception e)
                        {
                                e.printStackTrace();
                        }
                }
                System.out.println("File name:" + f.getName());
                System.out.println("File path:" + f.getPath());
                System.out.println("File abs path:" + f.getAbsolutePath());
                System.out.println("File Parent:" + f.getParent());
                System.out.println(f.exists()?"exists":"not exists");
                System.out.println(f.canRead());
                System.out.println(f.isDirectory()?"directory":"not directory");
                System.out.print("File last modified:" + new Date(f.lastModified()));
        }       
}[/code]张老师讲的io第一讲中File一会存在一会不存在,搞迷糊了,求指导,求教育~

评分

参与人数 1技术分 +1 收起 理由
老罗 + 1 代码用铁代码的方式贴出来。

查看全部评分

5 个回复

倒序浏览
黑马网友  发表于 2011-9-5 21:16:49
沙发
这个不应该晕吧
{
存在1.txt
把1.txt删了
执行到下面打印语句就打印“不存在”(这边没有生成1.txt)
}
在执行一次程序
{
不存在1.txt
建一个1.txt
下面打印的语句就打印“存在”(这边没有生成1.txt)
}


这两段大括号标注的内容可以互换,根据你的目录下面有没有1.txt

评分

参与人数 1技术分 +2 收起 理由
老罗 + 2

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-9-5 21:33:08
藤椅
如果想了解一个程序的执行过程呢,可以在Eclipse中,设置断点调试,单步执行,来观察程序的执行过程。
    首先在Java 文件中设置断点,然后运行程序,程序走到断点就会转到debug 视图;
    然后按F5 或 F6 单步调试;

针对这个程序呢,可以在添加一行输出信息,可以帮助理解呢。。。[code=java]if (f.exists()){
                        f.delete();
                        [color=Red]System.out.println("******");[/color]                }else[/code]如果你的磁盘文件中存在了1.txt这个文件,就会执行if 条件下的语句,删除磁盘上已经存在的1.txt 这个文件,同时输出一行***,如果磁盘中没有1.txt 这个文件,程序调用createNewFile()方法,创建一个1.txt 文件。

评分

参与人数 1技术分 +2 收起 理由
老罗 + 2

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-9-5 21:45:17
板凳

回复 沙发 的帖子

那就是说1.txt在执行完一次就存在,在执行一次就删除?我还以为执行完一次存在然后会自动删除的。。。谢谢大家了
回复 使用道具 举报
黑马网友  发表于 2011-9-5 21:56:31
报纸
楼主要是还觉得有点晕,可以看毕向东老师的视频(第20天的第四个视频,我恰巧刚看到这儿),讲的清楚明了,幽默感十足。

评分

参与人数 1技术分 +2 收起 理由
老罗 + 2 哈哈。

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-9-6 08:23:54
地板

回复 楼主 的帖子

楼主您被老张搞糊涂了不解释,  
我从代码上面帮你解释一下好了

首先new一个假想的文件f

然后if 判断 看这个文件是否真实存在于硬盘上

如果有就删除,如果没有就创建一个

最后输出这个文件的信息
(存在 不存在 输出的信息也会不同)

评分

参与人数 1技术分 +1 收起 理由
wangfayin + 1 有道理!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马