• Java从零开始学三十三(JAVA IO- File类)


    一、简述

    在整个io包中,唯一表示与文件本身有关的类就是File类。使用File类可以进行创建或删除文件等常用操作。要想使用File类,则首先要观察File类的构造方法,此类的常用构造方法如下所示:
    public File(String pathname) ->实例化File类的时候,必须设置好路径。

    二、File类中的主要方法和常量

    No.
    方法或常量
    类型
    描述
    1
    public static final String pathSeparator
    常量
    表示路径的分隔符(windows是:“;”)
    2
    public static final String separator
    常量
    表示路径的分隔符(windows是:“”)
    3
    public File(String pathname)
    构造
    创建File类对象,传入完整路径
    4
    public boolean createNewFile() throws IOException
    普通
    创建新文件
    5
    public boolean delete()
    普通
    删除文件
    6
    public boolean exists()
    普通
    判断文件是否存在
    7
    public boolean isDirectory()
    普通
    判断给定的路径是否是一个目录
    8
    public long length()
    普通
    返回文件的大小
    9
    public String[] list()
    普通
    列出指定目录的全部内容,只是列出了名称
    10
    public File[] listFiles()
    普通
    列出指定目录的全部内容,会列出路径
    11
    public boolean mkdir()
    普通
    创建一个目录
    12
    public boolean renameTo(File dest)
    普通
    为已有的文件重新命名

     三、创建一个新文件

    3.1、直接创建文件:

    package com.pb.file.demo1;
    
    import java.io.File;
    import java.io.IOException;
    
    public class FileDemo1 {
    
        public static void main(String[] args) {
          File file=new File("d:/test.txt");    //声明一个文件对象
          
          try {
            boolean flag=file.createNewFile(); //根据路径创建文件返回类型为Boolean类型
            if(flag){
                System.out.println("文件创建成功");
            }else{
                System.out.println("文件创建失败");
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    
        }
    
    }

    3.2 在不同的操作系统中,路径的分隔符表示是不一样的

    windows中使用反斜杆表示目录的分隔符:“” ;
    linux中使用正斜杆表示目录的分隔符:“/”。
     
    package com.pb.file.demo1;
    
    import java.io.File;
    
    public class FileDemo2 {
    
        public static void main(String[] args) {
            System.out.println(File.pathSeparator); // 调用静态常量
    
            System.out.println(File.separator); // 调用静态常量
    
        }
    
    }

    结果:

    ;
    

    3.3、修改创建文件的代码

    使用静态常量连接

    package com.pb.file.demo1;
    
    import java.io.File;
    import java.io.IOException;
    
    public class FileDemo1 {
    
        public static void main(String[] args) {
            String path="d:"+File.separator+"test1.txt";
          File file=new File(path);    //声明一个文件对象
          
          try {
            boolean flag=file.createNewFile(); //根据路径创建文件返回类型为Boolean类型
            if(flag){
                System.out.println("文件创建成功");
            }else{
                System.out.println("文件创建失败");
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    
        }
    
    }

     四、删除文件

    4.1、不判断文件是否存在直接删除

    package com.pb.file.demo1;
    
    import java.io.File;
    import java.io.IOException;
    
    public class FileDemo3 {
    
        public static void main(String[] args) {
            String path="d:"+File.separator+"test.txt";
          File file=new File(path);    //声明一个文件对象
          
          boolean flag=file.delete(); //根据路径删除文件返回类型为Boolean类型
        if(flag){
            System.out.println("文件删除成功");
        }else{
            System.out.println("文件删除失败");
        }
    
        }
    
    }

    4.2、判断文件是否存在再执行删除

    package com.pb.file.demo1;
    
    import java.io.File;
    import java.io.IOException;
    
    public class FileDemo3 {
    
        public static void main(String[] args) {
            String path = "d:" + File.separator + "test.txt";
            File file = new File(path); // 声明一个文件对象
            if (file.exists()) {
                boolean flag = file.delete(); // 根据路径删除文件返回类型为Boolean类型
                    if (flag) {
                        System.out.println("文件删除成功");
                    } else {
                        System.out.println("文件删除失败");
                    }
            } else {
                System.out.println("文件不存在!");
            }
    
        }
    
    }

    4.3、结合上面2个例子实现创建与删除

    package com.pb.file.demo1;
    
    import java.io.File;
    import java.io.IOException;
    
    public class FileDemo4 {
    
        public static void main(String[] args) {
            String path = "d:" + File.separator + "test.txt";
            File file = new File(path); // 声明一个文件对象
            if(file.exists()){   //判断文件是否存在如果存在就删除
                file.delete();
                System.out.println("文件存在,删除成功!");
            }else{//判断文件是否存在如果不存在就创建
                try {
                    file.createNewFile();
                    System.out.println("文件不存在,创建成功!");
                } catch (IOException e) {
                    e.printStackTrace();
                }
                
            }
    
        }
    
    }

    五、创建文件夹

    5.1、创建一个文件夹mkdir

    package com.pb.file.demo1;
    
    import java.io.File;
    import java.io.IOException;
    
    public class FileDemo5 {
    
        public static void main(String[] args) {
            String path = "d:" + File.separator + "test";
            File file = new File(path); // 声明一个文件对象
            if(!file.exists()){
            boolean flag=file.mkdir();                //创建文件夹
                if(flag){
                    System.out.println("文件夹创建成功");
                }
            }else{
                System.out.println("已经存在这个名称的文件夹!");
            }
    
        }
    
    }

    5.2、创建一个多层文件夹mkdirs

    package com.pb.file.demo1;
    
    import java.io.File;
    import java.io.IOException;
    
    public class FileDemo5 {
    
        public static void main(String[] args) {
            String path = "d:" + File.separator + "test"+ File.separator + "test1"+ File.separator + "test2";
            File file = new File(path); // 声明一个文件对象
            if(!file.exists()){
            boolean flag=file.mkdirs();                //创建文件夹
                if(flag){
                    System.out.println("文件夹创建成功");
                }
            }else{
                System.out.println("已经存在这个名称的文件夹!");
            }
    
        }
    
    }

    5.3、列出目录下的全部内容

    package com.pb.file.demo1;
    
    import java.io.File;
    import java.io.IOException;
    
    public class FileDemo6 {
    
        public static void main(String[] args) {
            String path = "f:" + File.separator ;
            File file = new File(path); // 声明一个文件对象
            System.out.println("============只列出文件夹和文件的名称===============");
            String [] str=file.list();//列出目录中的全部内容文件夹和文件
            //此方法只列出文件夹和文件的名称
            for (int i = 0; i < str.length; i++) {
                System.out.println(str[i].toString());
            }
            System.out.println("==============列出路径、文件夹和文件的名称=================");
            File[] file1=file.listFiles();        //列出目录中的全部内容文件夹和文件
            //此方法会列出路径、文件夹和文件的名称
            for (int i = 0; i < file1.length; i++) {
                System.out.println(file1[i].toString());
            }
            
        }
    
    }

    结果:

    ============只列出文件夹和文件的名称===============
    $RECYCLE.BIN
    download
    eclipse-kepler
    html
    java
    java web
    javascript
    javastudy
    jquery
    js
    jsp
    jsptest
    linux
    ORACLE
    oracle学习笔记
    shop
    System Volume Information
    t
    tools
    vm
    软件
    ==============列出路径、文件夹和文件的名称=================
    f:$RECYCLE.BIN
    f:download
    f:eclipse-kepler
    f:html
    f:java
    f:java web
    f:javascript
    f:javastudy
    f:jquery
    f:js
    f:jsp
    f:jsptest
    f:linux
    f:ORACLE
    f:oracle学习笔记
    f:shop
    f:System Volume Information
    f:	
    f:	ools
    f:vm
    f:软件

    5.3、增加判断是文件还是目录

    先判断给出一是不是目录

    package com.pb.file.demo1;
    
    import java.io.File;
    import java.io.IOException;
    
    public class FileDemo7 {
    
        public static void main(String[] args) {
            String path = "g:" + File.separator ;
            File file = new File(path); // 声明一个文件对象
            
            if(file.isDirectory()){
                System.out.println(file.getPath()+"是目录!");
            }
            if(file.isFile()){
                System.out.println(file.getPath()+"是文件!");
            }
            
        }
    
    }
    package com.pb.file.demo1;
    
    import java.io.File;
    import java.io.IOException;
    
    public class FileDemo7 {
        
        
        public void print(File file){
            if(file.exists()){  //判断给定的目录或者文件是否存在
                System.out.println("=============路径存在=========");
            if(file.isDirectory()){
                System.out.println(file.getPath()+"是目录! 将会列出目录下的所有文件!==============");
                File    [] f=file.listFiles();                        //是目录就列出目录下的所有内容
                for (int i = 0; i < f.length; i++) {
                    if(f[i].isDirectory()){
                        System.out.println(f[i]+"	是目录!");
                    }else{
                    System.out.println(f[i]+"	是文件!");
                    }
                }
            }else{                //不是目录就打印路径信息
                System.out.println(file+"	是文件!");
            }
            }else{
                System.out.println(file+"=============路径不存在!=============");
            }
        }
    
        public static void main(String[] args) {
            String path = "g:" + File.separator ;
            File file = new File(path); // 声明一个文件对象
            FileDemo7 fd=new FileDemo7();
            fd.print(file);
            
            
            
        }
    
    }

    结果:

    =============路径存在=========
    g:是目录! 将会列出目录下的所有文件!==============
    g:$RECYCLE.BIN    是目录!
    g:Adobe Dreamweaver CS5    是目录!
    g:Adobe Dreamweaver CS5.rar    是文件!
    g:atm    是目录!
    g:atm.rar    是文件!
    g:eclipse    是目录!
    g:eclipse-kepler    是目录!
    g:html    是目录!
    g:java    是目录!
    g:jsp    是目录!
    g:orcale    是目录!
    g:SqlHistory.xml    是文件!
    g:System Volume Information    是目录!
    g:~1    是目录!
    g:书    是目录!
    g:停止..bat    是文件!
    g:启动.bat    是文件!
    g:源    是目录!
    g:第三方控件    是目录!

    六、其它的一些方法

    package com.pb.file.demo1;
    
    import java.io.File;
    import java.io.IOException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    /*
     * 文件操作的一些方法
     */
    public class FileMethods {
    
        public static void main(String[] args) throws IOException {
            //实例化File类对象
            File f=new File("d:"+File.separator+"test"+File.separator+"hello.txt");
            //文件文件属性
            System.out.println("文件名:"+f.getName());
            //相对路径
            System.out.println("相对路径:"+f.getParent());
            //绝对路径
            System.out.println("绝对路径:"+f.getAbsolutePath());
            //获取文件的父级目录,上一级目录
            System.out.println("上一级目录"+f.getParent());
            //当前文件是否存在
            System.out.println(f.exists()?"文件存在":"文件不存在");
            //是不是个文件
            System.out.println(f.isFile()?"是文件":"不是文件");
            //文件长度
            System.out.println("文件长度:"+f.length());
            //是不是个文件
            System.out.println(f.isDirectory()?"是文件夹":"不是文件夹");
            //是否可以 读
            System.out.println(f.canRead()?"文件可读":"文件不可读");
            //是否可以写
            System.out.println(f.canRead()?"文件可写":"文件不可写");
            //最后一次修改的时间
            SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date date=new Date(f.lastModified());
            System.out.println("最后修改的时间:"+sdf.format(date));
            //新建
            if(!f.exists()){    //如果文件不存在就创建
                f.createNewFile();
                System.out.println("创建文件");
            }else{
                //如果存在就删除
                f.delete();
                System.out.println("删除文件");
            }
            
        }
    
    }
  • 相关阅读:
    sitemap.xml生成方法(asp和php)(转)
    浏览器缓存机制(转)
    JavaScript在IE浏览器和Firefox浏览器中的差异总结(转)
    JavaScript的数组及其操作
    Google Maps和GIS开发资源收集
    js 字符串转换成数字(转)
    关于构造函数
    C#类型转化
    .net framework
    C#变量
  • 原文地址:https://www.cnblogs.com/liunanjava/p/4305790.html
Copyright © 2020-2023  润新知