美文网首页Java自学
Java自学-I/O File类

Java自学-I/O File类

作者: Wester西人 | 来源:发表于2019-10-18 20:22 被阅读0次

Java 的File类,以及常用方法

文件和文件夹都是用File代表

步骤 1 : 创建一个文件对象

使用绝对路径或者相对路径创建File对象


创建一个文件对象
package file;
  
import java.io.File;
  
public class TestFile {
  
    public static void main(String[] args) {
        // 绝对路径
        File f1 = new File("d:/LOLFolder");
        System.out.println("f1的绝对路径:" + f1.getAbsolutePath());
        // 相对路径,相对于工作目录,如果在eclipse中,就是项目目录
        File f2 = new File("LOL.exe");
        System.out.println("f2的绝对路径:" + f2.getAbsolutePath());
  
        // 把f1作为父目录创建文件对象
        File f3 = new File(f1, "LOL.exe");
  
        System.out.println("f3的绝对路径:" + f3.getAbsolutePath());
    }
}

步骤 2 : 文件常用方法1

注意1: 需要在D:\LOLFolder确实存在一个LOL.exe,才可以看到对应的文件长度、修改时间等信息

注意2: renameTo方法用于对物理文件名称进行修改,但是并不会修改File对象的name属性

文件常用方法1
package file;
  
import java.io.File;
import java.util.Date;
  
public class TestFile {
  
    public static void main(String[] args) {
  
        File f = new File("d:/LOLFolder/LOL.exe");
        System.out.println("当前文件是:" +f);
        //文件是否存在
        System.out.println("判断是否存在:"+f.exists());
         
        //是否是文件夹
        System.out.println("判断是否是文件夹:"+f.isDirectory());
          
        //是否是文件(非文件夹)
        System.out.println("判断是否是文件:"+f.isFile());
          
        //文件长度
        System.out.println("获取文件的长度:"+f.length());
          
        //文件最后修改时间
        long time = f.lastModified();
        Date d = new Date(time);
        System.out.println("获取文件的最后修改时间:"+d);
        //设置文件修改时间为1970.1.1 08:00:00
        f.setLastModified(0);
          
        //文件重命名
        File f2 =new File("d:/LOLFolder/DOTA.exe");
        f.renameTo(f2);
        System.out.println("把LOL.exe改名成了DOTA.exe");
         
        System.out.println("注意: 需要在D:\\LOLFolder确实存在一个LOL.exe,\r\n才可以看到对应的文件长度、修改时间等信息");
    }
}

步骤 3 : 文件常用方法2

package file;
  
import java.io.File;
import java.io.IOException;
  
public class TestFile {
  
    public static void main(String[] args) throws IOException {
  
        File f = new File("d:/LOLFolder/skin/garen.ski");
  
        // 以字符串数组的形式,返回当前文件夹下的所有文件(不包含子文件及子文件夹)
        f.list();
  
        // 以文件数组的形式,返回当前文件夹下的所有文件(不包含子文件及子文件夹)
        File[]fs= f.listFiles();
  
        // 以字符串形式返回获取所在文件夹
        f.getParent();
  
        // 以文件形式返回获取所在文件夹
        f.getParentFile();
        // 创建文件夹,如果父文件夹skin不存在,创建就无效
        f.mkdir();
  
        // 创建文件夹,如果父文件夹skin不存在,就会创建父文件夹
        f.mkdirs();
  
        // 创建一个空文件,如果父文件夹skin不存在,就会抛出异常
        f.createNewFile();
        // 所以创建一个空文件之前,通常都会创建父目录
        f.getParentFile().mkdirs();
  
        // 列出所有的盘符c: d: e: 等等
        f.listRoots();
  
        // 刪除文件
        f.delete();
  
        // JVM结束的时候,刪除文件,常用于临时文件的删除
        f.deleteOnExit();
  
    }
}

练习遍历文件夹

一般说来操作系统都会安装在C盘,所以会有一个 C:\WINDOWS目录。

遍历这个目录下所有的文件(要求遍历子文件夹)

找出这些文件里,最大的和最小(非0)的那个文件,打印出他们的文件名

: 最小的文件不能是0长度

在这里插入图片描述

答案

public class ListFiles {
    
    static long maxSize = 0;
    static long minSize = Long.MAX_VALUE;
    static File maxFile = null;
    static File minFile = null;
    
    public static void getFiles(File f){
        if(f.isDirectory()){
            File[] fs = f.listFiles();
            if(null!=fs)
            for (int i = 0; i < fs.length; i++) {
                getFiles(fs[i]);
            }
        }
        if(f.isFile()){
            if(f.length()>maxSize){
                maxSize = f.length();
                maxFile = f;
            }
            if(f.length()<minSize && f.length()!=0){
                minSize = f.length();
                minFile = f;
            }
        }
    }

    
    public static void main(String[] args) {
        File f = new File("C:/windows");
        getFiles(f);
        System.out.printf("最大的文件是:%s,其大小是%,d字节%n",maxFile,maxSize);
        System.out.printf("最小的文件是:%s,其大小是%,d字节%n",minFile,minSize);
    }
}

相关文章

  • Java自学-I/O File类

    Java 的File类,以及常用方法 文件和文件夹都是用File代表 步骤 1 : 创建一个文件对象 使用绝对路径...

  • Java-I/O学习(4)

    Java-I/O学习(4) File Java IO 的File类可以帮助你访问底层的文件系统,使用File类你可...

  • Scala IO

    Scala 进行文件写操作,直接用的都是 java中 的 I/O 类 (java.io.File): 执行以上代码...

  • 【Java】File类与I/O流

    File类 File类的直接父类是Object类。 一个File类的对象,表示了磁盘上的文件或目录。 1、利用构造...

  • I/O的学习之字节流

    I/O的学习之字节流 今天的主要内容 File类的使用File类概述和构造方法File类的创建功能File类的重命...

  • 06-Java基础-File & I\O

    异常、File类、I\O流 异常 异常就是Java程序在运行过程中出现的错误。异常类有两个主要的子类:IOExce...

  • JavaWeb之二——磁盘IO

    [Java I/O类库的基本架构](#Java I/O类库的基本架构) 字节与字符的转化接口 Java读写磁盘 J...

  • Java处理IO的现代方式

    介绍 Java 7 引入了全新的 I/O API(一般称为 NIO.2),几乎可以完全取代以前使用 File 类处...

  • Java--File I/O

    java.io.File类用于表示文件(目录)。用来将文件或者文件夹封装成对象。File类只用于表示文件(目录)的...

  • Java IO流

    I(Input)/O(OutPut) 数据的流动 Java中的目录 File类中有两个方法可以用来创建文件夹: m...

网友评论

    本文标题:Java自学-I/O File类

    本文链接:https://www.haomeiwen.com/subject/jxpwmctx.html