首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java之java.io.File的相关方法

java之java.io.File的相关方法

作者头像
西西嘛呦
发布2020-08-26 15:20:13
3090
发布2020-08-26 15:20:13
举报

java.io.File的使用。

IO原理及流的分类。

文件流:FileInputStream、FileOutputStream、FileReader、FileWriter

缓存流:BufferedInputStream、BufferedOutputStream、BufferedReader、BufferedWriter

转换流:InputStreamReader、OuputStreamReader

标准输入/输出流

打印流

数据流

对象流:涉及序列化和反序列化ObjectInputStream、ObjectOutputStream

随机存取文件流:RandomAcessFile

java.io.File类:文件和目录路径名的抽象表示形式,与平台无关。

File能新建、删除、重命名文件和目录,但File不能访问文件内容本身。如果需要访问文件内容本身,则需要使用输入/输出流。

File对象可以作为参数传递给构造函数。

File类常用构造方法:

  • public File(String pathname)。以pathname为路径创建File对象,可以是绝对路径,也可以是相对路径,如果pathname是相对路径,则默认的当前路径在系统属性user.dir中存储。
  • public File(String parent,String child);。以parent为父路径,child为子路径创建File对象。
  • File的静态属性String sperator存储了当前系统的路径分隔符,在Unix中,此字段为"/",在windows中为"\\"。

访问文件名:

  • getName()
  • getPath()
  • getAbsoluFile()
  • getAbosoluPath()
  • getParent()
  • renameTo(File newName)

文件检测:

  • exists()
  • canWrite()
  • canRead()
  • isFile()
  • isDirectory()

获取常规文件信息:

  • lastModify()
  • length()

文件操作相关:

  • createNewFile()
  • delete()

目录操作相关:

  • mkDir()
  • list()
  • listFiles()
package anno;

import java.io.File;

public class Test1 {
    public static void main(String[] args) {
        File f = new File("F:\\test.txt");
        System.out.println(f.getName());
        //获取new File时的路径
        System.out.println(f.getPath());
        //获取文件的绝对路径
        System.out.println(f.getAbsolutePath());
        //用绝对路径包起来的File对象
        System.out.println(f.getAbsoluteFile());
        //当前文件的父级目录
        System.out.println(f.getParent());
        f.renameTo(new File("F:\\test2.txt"));
        File f2 = new File("F:\\test2.txt");
        System.out.println(f2.exists());
        System.out.println(f2.isFile());
        System.out.println(f2.isDirectory());
        //返回的是字节数
        System.out.println(f2.length());
        File f3 = new File("F:\\test3.txt");
        if(!f3.exists()) {
            try {
                //创建文件
                f3.createNewFile();
            }catch(Exception e){
                e.printStackTrace();
            }finally {
                System.out.println("创建完毕");
            }
        }
        //删除文件
        f3.delete();
        File f4 = new File("F:\\test4\\name");
        //f.mkDir();创建单层目录
        //创建多层目录
        if(!f4.exists()) {
            f4.mkdirs();
        }
        File f5 = new File("F:\\test4");
        //返回的是字符串集合,包括文件和目录
        String[] l1 = f5.list();
        for(String l:l1){
            System.out.println(l);
        }
        //返回的是个File集合,包括目录和文件
        File[] l2 = f5.listFiles();
        for(File l:l2){
            System.out.println(l);
        }
        
    }
}

递归判断某个文件夹下的文件是文件夹还是文件。

package anno;

import java.io.File;

public class Test1 {
    public static void main(String[] args) {
        File f = new File("F:\\test\\");
        obtainFiles(f);
    }
    public static void obtainFiles(File f) {
        if(f.isFile()) {
            System.out.println(f.getAbsolutePath()+"是文件");
        }else {
            System.out.println(f.getAbsolutePath()+"是文件夹");
            File[] fs = f.listFiles();//获取当前目录下的文件夹或文件
            if(fs!=null && fs.length>0) {
                for(File ff:fs) {
                    obtainFiles(ff);
                }
            } 
        }
    }
}

输出:

F:\test是文件夹 F:\test\file1是文件夹 F:\test\file2是文件夹 F:\test\file3是文件夹 F:\test\file4是文件夹 F:\test\test1.txt是文件 F:\test\test2.txt是文件 F:\test\test3.txt是文件 F:\test\test4.txt是文件

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-12-19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档