Java中的IO操作总结(二)

这节主要说明一下关于文件本身的操作。具体参考代码。

package com.changj.javaio;

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

public class FileDemo {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // 选择桌面的json文件夹作为根目录"/Users/admin/Desktop/json"
        String path = "/Users/admin/Desktop/json";


        //creatFilePath(path);
        //creatFile(path);
        //deleteFile(path);
        //fileUtils(path);
        list(path);
    }

    /**
     * 在path目录下创建文件夹目录
     * 
     * @param path 
     */
    public static void creatFilePath(String path){
        //方法一
        //使用绝对路径来构造File目录(文件夹)
//      String newPath = String.format(path+"%s","/testPath");//将"/testPath"拼接在path后构造成"/Users/admin/Desktop/json/testPath"
//      File f = new File(newPath);
//      f.mkdir();

        //方法二
        //用父目录和子文件目录分隔的方式构造File目录
        File f = new File(path,"testPath");
        f.mkdir();

        //打印创建成功的目录路径
         System.out.println("f路径:" + f);
    }

    /**
     * 在path目录下创建文件对象
     * 
     * @param path
     */
    public static void creatFile(String path){
        //方法一
        //使用绝对路径来构造File文件队形
//      File f = new File(path+"/test.txt");
//      try {
//          f.createNewFile();
//      } catch (IOException e) {
//          e.printStackTrace();
//      }

        //方法二
        //用父目录和子文件对象分隔的方式构造File对象
        File f = new File(path,"test.txt"); 
        try {
            f.createNewFile();
        } catch (IOException e) {
            e.printStackTrace();
        }

        //打印创建成功的文件对象路径
         System.out.println("f路径:" + f);
    }

    /**
     * 删除文件夹目录或者文件对象
     * 
     * @param path
     */
    public static void deleteFile(String path){
//      //删除testPath路径(文件夹)
//      File f = new File(path+"/testPath");
//      f.delete();

        //删除test.txt文件
        File f = new File(path+"/test.txt");
        f.delete();

        //此方法表示在虚拟机退出时删除文件
        //原因在于:程序运行时有可能发生异常造成直接退出
        //清理残余很有必要~!
        f.deleteOnExit();
    }

    /**
     * 文件对象的相关操作
     * 
     * @param path
     */
    public static void fileUtils(String path){
        File f = new File(path+"/test.txt");

        //判断文件是否可执行
        System.out.println("f是否可执行:" + f.canExecute());

        //判断文件是否存在
        System.out.println("f是否存在:" + f.exists());

        //判断文件是否可读
        System.out.println("f是否可读:" + f.canRead());

        //判断文件是否可写
        System.out.println("f是否可写:" + f.canWrite());

        //判断文件是否为绝对路径名
        System.out.println("f是否绝对路径:" + f.isAbsolute());

        //判断文件是否为一个标准文件
        System.out.println("f是否为标准文件:" + f.isFile());

        //判断文件是否为一个目录
        System.out.println("f是否为目录:" + f.isDirectory());

        //判断文件是否隐藏
        System.out.println("f是否隐藏:" + f.isHidden());  

        //返回文件的绝对路径
        //此处返回值为String
        System.out.println("f的绝对路径名:" + f.getAbsolutePath());

        //返回文件的绝对路径
        //此处返回值为File
        System.out.println("f的绝对路径对象:" + f.getAbsoluteFile());

        //返回文件或目录的名称
        System.out.println("f的名称:" + f.getName());

        //返回文件的相对路径
        //构造函数中封装的是什么路径,就返回什么路径
        System.out.println("f的路径:" + f.getPath());

        //返回父目录的路径
        //如果在构造函数中的路径不是绝对路径,那么此处返回null
        System.out.println("f的父目录:" + f.getParent());
    }

    /**
     * 列出目录下的所有文件
     * @param path
     */
    public static void list(String path){

        File f = new File(path);
         //方式一:list()
        //返回一个包含指定目录下所有文件名的字符串数组
        //如果不是一个目录则返回null
        String[] files = f.list();
        for (String x : files) {
            System.out.println(x);
        }

        //方式二:listFiles()
        //返回File数组
        /*
        File[] files = f.listFiles();
        for (File x : files) {
            //如果需要包含路径,则直接打印x即可
            System.out.println(x.getName());
        }
        */
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值