什么是i/o流?
i/o流的定义:input/output stream;
i/o流中包含了大量的类和接口,都被存储在java.io包中
i/o流相当于我们生活中的管道,只不过存在于程序与本地文件之间,通过i/o流,我们可以使用程序对本地中的文件进行直接或间接的操作。
File类
1. File类的相关说明
File:代表磁盘中的一个文件,可以是一个普通文件,也可以是一个目录(文件夹)。
通过使用File类中的相关方法,我们可以对一个文件(目录)的整体进行操作,包括:创建一个文件,删除,重用名,获得文件信息等等…但是我们不能对文件的内容进行相关操作
2. File类的常用方法(这里只是抽象总结,详见API)
- File的构造方法;
- createNewFile():创建一个新的文件,无需参数,若路径正确则创建成功,若不正确,则抛出异常;
- mkdir():创建一层目录(文件夹);
- mkdirs():创建多层目录(文件夹);
- exists():判断此文件是否存在,无需参数;
- createTempFile():根据前缀和后缀在指定目录(文件夹)生成不重名的文件(此方法为静态方法,可直接通过File.createTempFile()调用;
- isFile():判断是否为一个文件;
- isDirctory():判断是否为一个目录(文件夹);
- renameTo():修改文件名,参数为File类型的新文件路径;
- getName():获得文件名;
- getAbsolutePath():获得绝对路径;
- listFiles():获得当前目录的子文件数组,返回值 类型是 File[],用于遍历当前目录下的子文件;
File常用方法的具体代码实现
package com.oracle.testfile;
import java.io.File;
import java.io.IOException;
public class TestFile {
public static void main(String[] args) {
//File的构造方法
File file = new File("e:/test.txt");
File file1 = new File("e:/test");
File file2 = new File("e:/abc/a/b/c");
//1.createNewFile():创建一个新的文件,无需参数,若路径正确则创建成功,若不正确,则抛出异常。
try {
file.createNewFile();
System.out.println("创建成功!");
} catch (IOException e) {
e.printStackTrace();
}
//2.创建一层目录(文件夹)。
System.out.println(file1.mkdir());
//3.创建多层目录(文件夹)。
System.out.println(file2.mkdirs());
//4.exists():判断此文件是否存在,无需参数。
//5.createTempFile():根据前缀和后缀在指定!目录(文件夹)!生成不重名的文件(此方法为静态方法,可直接通过File.createTempFile()调用)
if(file1.exists()) {
for(int i=0;i<5;i++) {
try {
File.createTempFile("test", ".java",file1);
System.out.println("创建临时文件成功!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
//5.isFile():判断是否为一个文件
System.out.println(file.isFile());
//System.out.println(file1.isFile());
//6.isDirctory():判断是否为一个目录(文件夹)
System.out.println(file2.isDirectory());
//7.renameTo():修改文件名,参数为File类型的新文件路径
System.out.println(file.renameTo(new File("e:/newtest.txt")));
//8.delete():删除文件(只能删除普通文件或空目录)
System.out.println(file.delete());
//9.getName():获得文件名
System.out.println(file.getName());
//10.getAbsolutePath():获得绝对路径
System.out.println(file.getAbsolutePath());
System.out.println(file1.delete());
System.out.println(file2.delete());
//11.listFiles():获得当前目录的子文件数组,返回值 类型是 File[],用于遍历当前目录下的子文件
showSubFiles(file1);
}
public static void showSubFiles(File file) {
System.out.println(file.getAbsolutePath());
if(file.isDirectory()) {
File[] sub = file.listFiles();
for(File f:sub) {
System.out.println(f);
}
}
}
}