一、File类
二、流的基本概念
三、Java流的分类
四、文件的读写
五、小结
---------------------------------------------------------------------------------------------------------------------------
一、File类
DeleteFile.java
public class DeleteFile {
public static void main(String[] args) {
// 输入想要删除的文件夹路径
File f =new File("E:\\a");
deleteFile(f);
}
public static void deleteFile(File f){
if(f.isDirectory()){
File[] files =f.listFiles();
for(File file1 : files){
if (file1.isFile()){
file1.delete();
}else {
deleteFile(file1);
}
file1.delete();
}
}
f.delete();
}
}
FileDemo.java
public class FileDemo {
public static void printFiles(File file){
File[] files = file.listFiles();
for(File file1 : files){
if(file1.isDirectory()){
printFiles(file1);
}else{
System.out.println(file1.getAbsolutePath());
}
}
}
public static void main(String[] args) {
String path = "E:\\20212022年HomeWork";
File file = new File(path);
printFiles(file);
}
}
TestFile.java
public class TestFile {
public static void main(String[] args){
File file = new File("E:/moring.txt");
// 创建文件或目录
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(file.canExecute());
System.out.println(file.canRead());
System.out.println(file.canWrite());
// 删除文件
// System.out.println(file.delete());
System.out.println(file.exists());
// 获取文件的绝对路径
System.out.println(file.getAbsoluteFile());
System.out.println(file.getAbsolutePath());
try {
// 获取文件的规范路径
System.out.println(file.getCanonicalPath());
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(file.getName());
System.out.println(file.getParent());
System.out.println(file.getPath());
System.out.println(file.isDirectory());
System.out.println(file.isFile());
System.out.println(file.lastModified());
System.out.println(file.length());
System.out.println(file.list());
System.out.println(file.listFiles());
System.out.println(file.toPath());
System.out.println(file.toString());
}
}
二、流的基本概念
• 如何读写文件?
• 通过流来读写文件
– 流是指一连串流动的字符,是以先进先出方式发
▪ 送信息的通道
▪ 输入/输出流与数据源
▪ XXX->程序-->输入流
▪ 程序->XXX-->输出流
三、Java流的分类
输入输出流是相对于计算机内存来说的,而不是相对于源和目标
字节流是 8 位通用字节流,字符流是 16 位 Unicode 字符流
▪ 功能不同
– 节点流:可以直接从数据源或目的地读写数据。
– 处理流(包装流):不直接连接到数据源或目的地,是其他流进行封装。目
的主要是简化操作和提高性能。
▪ 节点流和处理流的关系
– 节点流处于io操作的第一线,所有操作必须通过他们进行
– 处理流可以对其他流进行处理(提高效率或操作灵活性)