IO流操作中大部分都是对文件的操作,所以Java就提供了File类供我们来操作文件,通过查API发现File是java.io包下的
目录
一创建功能:
mkdir()在指定位置创建一个单级目录
mkdirs()在指定位置创建一个多级目录
createNewFile()在指定位置创建一个不存在的空文件
代码演示:
package com.hezhiying;
import java.io.File;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
File file1 = new File("E:\\aaa");
System.out.println(file1.mkdir());
File file2 = new File("E:\\bbb\\ccc\\ddd");
System.out.println(file2.mkdirs());
File file3 = new File("E:\\aaa\\b.txt");
System.out.println(file3.createNewFile());
}
}
运行结果:
二、删除功能:
delete()删除指定位置的一个单机目录或文件夹,如果文件夹中有内容就无法删除
代码演示:
package com.hezhiying;
import java.io.File;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
File file1 = new File("E:\\aaa\\bbb\\ccc");
System.out.println(file1.mkdirs());
File file2 = new File("E:\\aaa");
System.out.println(file2.delete());
File file3 = new File("E:\\aaa\\bbb\\ccc");
System.out.println(file3.delete());
}
}
运行结果:
三、重命名功能:
renameTo(File dest)
如果目标文件与源文件是在同一个路径下,那么renameTo的作用是重命名
如果目标文件与源文件不是在同一个路径下,那么renameTo的作用就是剪切,而且还能操作文件夹。
代码演示:
package com.hezhiying;
import java.io.File;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
File file1 = new File("E:\\aaa\\bbb");
System.out.println(file1.mkdirs());
File file2 = new File("E:\\aaa\\bbb\\c.txt");
System.out.println(file2.createNewFile());
File file3 = new File("E:\\aaa\\bbb\\d.txt");
System.out.println(file2.renameTo(file3));
File file4 = new File("E:\\aaa\\ccc");
System.out.println(file3.renameTo(file4));
}
}
通过这个程序可以看出,rename()方法既可以重命名文件,也能重命名文件夹
如果目标文件与源文件不是在同一个路径下呢
package com.hezhiying;
import java.io.File;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
File file1 = new File("E:\\aaa\\bbb");
System.out.println(file1.mkdirs());
File file2 = new File("E:\\aaa\\bbb\\c.txt");
System.out.println(file2.createNewFile());
File file3 = new File("E:\\ccc");
System.out.println(file3.mkdir());
File file4 = new File("E:\\ccc\\x.txt");
System.out.println(file2.renameTo(file4));
}
}
运行结果:
如果目标文件与源文件不是在同一个路径下,那么renameTo的作用就是剪切,而且不能操作文件夹。
四、判断功能:
exists()判断文件或文件夹是否存在
isFile()判断是否是一个文件
isDirectory()判断是否是一个目录
isHidden()判断是否是一个隐藏的文件或是否是隐藏的目录
canRead()判断是否可读
canWrite判断是否可写
五、普通获取功能:
getName()获取文件或文件夹的名称
getAbsolutePath()获取文件的绝对路径
getPath()获取文件夹的相对路径
length()获取文件的大小即字节数
lastModified()获取最后一次被修改的时间。
六、高级获取功能:
pulbic String[] list()获取指定目录下的所有文件或者文件夹的名称数组
public File[] listFiles()获取指定目录下的所有文件或者文件夹的File数组
七、文件的写出和读入:
package com.hzy;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
File file = new File("E:\\a.txt");
if (!file.exists()) {// 判断该文件是否存在
file.createNewFile();// 创建文件
}
// FileWriter fileWriter = new FileWriter("E:\\a.txt");// 直接写入到文件中,会覆盖原来的文件
FileWriter fileWriter = new FileWriter("E:\\a.txt",true);// 如果是true,就是往后追加
fileWriter.write("文件写入111");
fileWriter.flush();// 刷新缓冲区的内容到文件中
fileWriter.close();
FileReader fileReader = new FileReader(file);
char[] b = new char[1024];
int len = 0;
while ((len = fileReader.read(b)) != -1) {
System.out.println(new String(b,0,len));
}
}
}