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


    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: est是文件夹
    F: estfile1是文件夹
    F: estfile2是文件夹
    F: estfile3是文件夹
    F: estfile4是文件夹
    F: est est1.txt是文件
    F: est est2.txt是文件
    F: est est3.txt是文件
    F: est est4.txt是文件

  • 相关阅读:
    Razor使用方法
    Razor视图中的@:和<text>语法
    【洛谷p1031】均分纸牌
    Python读写文件
    对象传参数中引用是否被覆盖的情形
    Python中的random模块
    mysql数据库 安装 (原创)
    MYSQL常用命令
    MySQL查询数据表中数据记录(包括多表查询)
    127.0.0.1
  • 原文地址:https://www.cnblogs.com/xiximayou/p/12068493.html
Copyright © 2020-2023  润新知