首页 > 编程语言 > 详细

JAVA学习笔记(二十六) - 文件操作

时间:2015-03-27 11:02:45      阅读:238      评论:0      收藏:0      [点我收藏+]

File类

import java.io.File;
import java.io.IOException;

/*
 * File类
 * 文件和文件夹(目录),统称为文件
 */
public class Test03
{
    public static void main(String[] args) throws Exception
    {
        /*
         * 创建一个File文件对象,表示文件
         */
        // 1.通过指定文件的全路径
        // File file=new File("D:\\Java\\hello.txt");
        File file = new File("D:/Java/db.txt");
        // File file = new File("/home/soft01/hello.txt");
        // 2.通过父目录对象和文件名
        File f = new File("D:\\Java\\");
        File file2 = new File(f, "hello.txt");
        // 3.通过父目录的路径和文件名
        File file3 = new File("D:\\Java\\", "hello.txt");

        // 访问文件属性
        System.out.println("文件名:" + file.getName());
        System.out.println("路径名:" + file.getPath());
        System.out.println("绝对路径名:" + file.getAbsolutePath());
        System.out.println("父目录:" + file.getParent());
        System.out.println("父目录文件对象:" + file.getParentFile());
        System.out.println("长度:" + file.length());
        System.out.println(file);// 直接输出File对象,会输出其全路径
        System.out.println("是否可读:" + file.canRead());
        System.out.println("是否可写:" + file.canWrite());
        System.out.println("********************\n");

        // 文件操作
        if (file.exists())
        {
            System.out.println("文件存在!");
        } else
        {
            System.out.println("文件不存在!创建一个新的空文件");
            file.createNewFile();// 创建空文件
        }
        if (file.isDirectory())
        {
            System.out.println("这是一个目录!");
        } else if (file.isFile())
        {
            System.out.println("这是一个文件");
            System.out.println("文件名:" + file.getName());
            System.out.println("长度:" + file.length());
            file.delete();// 删除文件
            file.createNewFile();// 重新创建一个空的文件
            System.out.println("新文件的长度:" + file.length());
        }
        System.out.println("***********************\n");

        /*
         * 创建一个File对象,表示目录
         */
        File file4 = new File("/home/soft01/");
        if (file4.exists())
        {// 判断是否存在
            System.out.println("文件存在");
        } else
        {
            System.out.println("文件不存在");
            if (file4.isFile())
            { // 判断是否是文件
                System.out.println("创建一个空文件");
                file4.createNewFile();// 创建文件
            } else
            {
                System.out.println("创建一个空目录");
                // file4.mkdir();//创建目录,如果父目录不存在,则创建失败
                file4.mkdirs();// 创建目录,如果父目录不存在,则级联创建
            }
        }

        // 列出当前目录下的文件名称
        System.out.println("*****************列出当前目录下的文件名称");
        String[] dirList = file4.list();// 获取当前目录下的所有文件名的字符串数组
        for (String str : dirList)
        {
            System.out.println(str);
        }

        //列出当前目录下的文件详细信息
        System.out.println("*******************列出当前目录下的文件详细信息");
        File[] files = file4.listFiles();// 获取当前目录下的所有文件的File数组
        for(File f2:files){
            System.out.println("文件名:"+f2.getName()+",大小:"+f2.length());
        }

    }
}

递归

/*
 * 递归:方法本身调用自己,可能会出现永远止境的调用自己,所以要注意退出的条件
 */
public class Test04
{
    public static void main(String[] args)
    {
        System.out.println(calc(3,5));
    }

    // 求x的y幂次方
    public static int calc(int x, int y)
    {
        if (y == 0)
        {
            return 1;
        }
        if (y == 1)
        {
            return x;
        }
        return x*calc(x,y-1);
        //return x*calc(x,--y);
        //return x*calc(x,y--);//会抛出栈空间溢出异常
    }
}

递归显示目录下所有文件

/*
 * 递归显示目录下的所有文件,包括子目录下的文件
 */
public class Test05
{
    public static void main(String[] args)
    {
        File file = new File("D:\\Java\\ppt");
        System.out.println("当前目录下的文件:");
        dg(file);
    }

    // 递归显示目录下的所有文件
    public static void dg(File file)
    {
        if (!file.exists())// 判断是否存在
        { 
            System.out.println("目录不存在!");
            return;
        }
        if (file.isDirectory())
        { // 判断是否为目录
            File[] files = file.listFiles();// 获取当前目录下的所有文件对象
            for (int i = 0; i < files.length; i++)// 循环遍历目录下的所有文件对象
            {
                dg(files[i]);// 递归调用
            }

        } else
        {
            System.out.println(file);// 如果是文件,直接输出其路径
        }
    }
}

JAVA学习笔记(二十六) - 文件操作

原文:http://blog.csdn.net/wangzi11322/article/details/44671589

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!