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提供的判断文件类型功能

方法名称说明
public boolean exists()判断当前文件对象,对应的文件路径是否存在,存在返回true
public boolean isFile()判断当前文件对象指代的是否是文件,存在返回true,反之
public boolean isDirectory()判断当前文件对象指代的是否是文件夹,存在返回true,反之
public String getName()获取文件的名称(包含前缀)
public long length()获取文件的大小,返回字节个数
public long lastModifed()获取文件的最后修改时间
public String getPath()获取创建文件对象时,使用的路径
public String getAbsolutePath()获取绝对路径

 FIle类创建文件的功能

方法名称说明
public boolean createNewFile()创建一个新的空的文件夹
public boolean mkdir()只能创建一级文件夹
public boolean mkdirs()可以创建多级文件夹

FIle类删除文件的功能

方法名称说明
public boolean delete()删除文件、空文件夹

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

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

方法名称说明
public String[ ] list()获取当前目录下所有的”一级文件名称“到一个字符串数组中去返回
public File[ ] listFiles()获取当前目录下所有的”一级文件对象“到一个文件对象数组中去返回(重点)
 使用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));
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值