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));
}
}
}