IO操作-File

IO学习

学习法则:当子类复写父类方法时,会根据实例化子类的不同,同一方法可以完成不同的功能。

File类

File类是在整个java.io包之中唯一一个与文件本身操作有关的类,文件本身操作指的是文件的创建、删除等,但是如果要进行File类操作那么必须设置好要操作的文件或文件夹的路径,使用如下构造方法。

构造方法
public File(String pathname),传入完整的路径,WEB开发此方式比较好用
public File(File parent, String child),传入父路径和子路径。

范例:基本的文件操作

  • 创建新的文件

    public boolean createFile() throws IOException;

  • 删除文件
    public boolean delete();
  • 判断文件是否存在

    public boolean exists();

    public class TestDemo{
        public static void main(String[] args) throws Exception {
            File file = new File("D:\\demo.txt");
            if(file.exists()){
                file.delete();
            } else{
                file.createFile();
            }
        }
    

    本程序依然存在如下几个问题:

  • Java的最大特征是可移植性,分隔符不同,一般在windows开发,最后部署在Linux之中;

    public static final String separator

  • 在程序执行完之后文件并不会立刻删除或者是创建,存在有一定的延迟,因为Java程序是通过JVM间接调用系统函数实现的文件操作。
  • 如果在进行文件创建的时候,如果有目录,则需要先创建文件目录之后才可以创建文件。
    • 找到父路径:
      public File getParentFile();
    • 创建目录:
      public boolean mkdirs();

除了以上的一些文件操作,还有一些取得文件信息的方法。

  • 判断路径是否是文件

    public boolean isFile();

  • 判断路径是否是文件夹
    public boolean isDirectory();
  • 最后一次修改日期

    public long lastModified();

    new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS")  
        .format(new Date(file.lastModified()));
    
  • 取得文件大小

    public long length();

  • 修改文件名称
    public boolean renameTo(File dest);

列出目录中的所有文件内容
  • 列出目录内容

    public File[] listFiles();

    File file = new File("D:" + File.separator + "testjava");  
    if(file.exists() && file.isDirectory()) {
        File[] result = file.listFiles();
        for(int x = 0; x < result.length; x++) {
            System.out.println(result[x]);
        }
    }
    

    但是此时列出的只是当前目录的文件内容。

范例:列出一个目录之中的所有文件(包括所有子目录的文件)

public static void print(File file) {
    if(file.exists() && file.isDirectory()) {
        File[] result = file.listFiles();
        if(result != null) { //有些文件我们并没有权限打开
            for(int x = 0; x < result.length; x++) {
                print(result);
            }
        }
    }
    System.out.println(file);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值