File、IO流(一)

File、IO流

File

  • File是Java.io包下的类,File类的对象,用于代表当前操作系统的文件(可以是文件、或者文件夹)。

注意:File类只能对文件本身进行操作,不能读写文件里面存储的数据

IO流

  • 用于读写数据的(可以读写文件,或者网络中的数据...)

File:代表文本                IO流:读写数据

File

创建对象

创建File类的对象

构造器 说明
public File(String pathname) 根据文件路径创建文件对象
public FIle(String parent,String child) 根据父路径和子路径名字创建文件对象
public File(File parent,String child) 根据父路径对应文件对象和子路径名字创建文件对象

 注意

  • File对象既可以代表文件、也可以代表文件夹。
  • File封装的对象仅仅是一个路径名,这个路径可以是存在的,也允许是不存在的。
绝对路径、相对路径
  • 绝对路径:从盘符开始

  •  相对路径:不带盘符,默认直接到当前工程下的目录寻找文件

import java.io.File;

public class Test {
    public static void main(String[] args) {
        // 创建一个File对象,指代某个具体的文件
        // 路径分隔符
        //File f1 = new File("D:/resource/ab.txt");
        //File f1 = new File("D:\\resource\\ab.txt");
        File f1 = new File("D:" + File.separator + "resource" + File.separator + "ab.txt");
        System.out.println(f1.length());

        File f2 = new File("D:/resource");
        System.out.println(f2.length());

        // 注意:File对象可以指代一个不存在的文件路径
        File f3 = new File("D:/resource/aaaa.txt");
        System.out.println(f3.length());
        System.out.println(f3.exists());

        // 绝对路径:带盘符的
        // File f4 = new File("D:\\code\\javasepromax\\file-io-app\\src\\ithema.txt");
        // 相对路径(重点):不带盘符,默认是直接去工程下寻找文件
        File f4 = new File("file-io-app\\\\src\\\\ithema.txt");
        System.out.println(f4.length());
    }
}

File常用方法

FIle提供的判断文件类型功能

 FIle类创建文件的功能

FIle类删除文件的功能

注意:delete方法默认只能删除文件和空文件夹,删除后的文件不会进入回收站。

File类提供的遍历文件夹的功能

 使用listFiles方法时的注意事项:
  • 当主调是文件,或者路径不存在时,返回null
  • 当主调是空文件夹时返回一个长度为0的数组
  • 当主调是一个由内容的文件夹时,将里面所有以及文件和文件夹的路径放在File数组在返回
  • 当主调是一个文件夹,且里面有隐藏文件时,将里面所有文件和文件夹的路径放在File数组中返回,包含隐藏文件
  • 当主调是一个文件夹,但是没有访问权限访问该文件时,返回null

练习

需求:改变某个文件夹下视频的序号,要求从19开始

import java.io.File;

public class Test {
    public static void main(String[] args) {
       // 目标:改变某个文件夹下视频的序号,要求从19开始
        File dir = new File("D:\\void\\视频");

        // 拿到下面全部的视频,以及文件对象
        File[] voideos = dir.listFiles();

        // 一个一个找
        for (File voideo : voideos) {
            // 拿到它的名字,改成新名字
            String name = voideo.getName();
            String index = name.substring(0,name.indexOf("、"));
            String lastName = name.substring(name.indexOf("、"));
            String newName = (Integer.valueOf(index) + 18) + lastName;

            // 正式改名
            voideo.renameTo(new File(dir,newName));
        }
    }
}

你可能感兴趣的:(java,开发语言)