1、IO操作
(1)I的概念:input,输入流,读取操作。
(2)O的概念:output,输出流,写入操作。

2、File类
(1)API介绍

(2)构造方法

import java.io.File;
public class Demo2_File {
public static void main(String[] args) {
//构造方法
//File(String)
File file = new File("/Users/jim/Desktop/Work/temp/java1221/test.txt");
System.out.println(file);// /Users/jim/Desktop/Work/temp/java1221/test.txt
//注意:File类对象不会验证该路径是否正确。
//File(String,String) 用于方便读取一个文件夹下多个文件。
File file2 = new File("/Users/jim/Desktop/Work/temp/java1221/","test.txt");
System.out.println(file2);// /Users/jim/Desktop/Work/temp/java1221/test.txt
//File(File,String) 如果需要对目录路径进行File对象操作,这是可以先实例化该目录成为File对象执行完毕后,再生成文件对象
File dir = new File("/Users/jim/Desktop/Work/temp/java1221/");
File file3 = new File(dir,"test.txt");
System.out.println(file3);// /Users/jim/Desktop/Work/temp/java1221/test.txt
}
}
(3)创建功能方法

import java.io.File;
import java.io.IOException;
public class Demo2_File {
public static void main(String[] args) throws IOException {
//创建功能方法
//创建目录
File file = new File("/Users/jim/Desktop/Work/temp/java1221");
//.mkdir() 创建一个目录,如果创建的目录不存在返回true,创建目录已存在或前方路径不存在返回false
boolean mkdir = file.mkdir();
System.out.println(mkdir);//true
//.mkdirs() 创建多个目录,如果创建的目录不存或前方路径不存在在返回true,创建目录已存在返回false
File file2 = new File("/Users/jim/Desktop/Work/temp/java12210/java");
boolean mkdirs = file2.mkdirs();
System.out.println(mkdirs);//true/fasle/true
//创建文件
File file3 = new File("/Users/jim/Desktop/Work/temp/java12210/test.txt");
/*
.createNewFile() 创建文件
返回结果
true: 前方路径存在,但文件不存在,文件创建成功。
false: 前方路径存在,文件也存在,文件创建失败。
IOException: 前方路径不存在,报异常。
*/
boolean newFile = file3.createNewFile();
System.out.println(newFile);
//method_构造方法();
}
}
(4)删除功能方法

import java.io.File;
import java.io.IOException;
public class Demo2_File {
public static void main(String[] args) throws IOException {
//删除方法
File file = new File("/Users/jim/Desktop/Work/temp/java12210/test.txt");
//.delete()删除文件,如果前方路径存在且文件存在,则删除成功返回true.前方路径存在但文件不存在或前方路径不存在,则删除失败返回false
boolean delete = file.delete();
System.out.println(delete);//true
//注意:delete()方法不走回收站,删除时要三思。
File file2 = new File("/Users/jim/Desktop/Work/temp/java1221/demo.txt");
//deleteOnExit() 在程序结束后删除文件
file2.deleteOnExit();
System.out.println("程序结束");
}
}
(5)获取功能方法

import java.io.File;
import java.io.IOException;
public class Demo2_File {
public static void main(String[] args) throws IOException {
//获取方法
File file = new File("/Users/jim/Desktop/Work/temp/java1221/test.txt");
File absoluteFile = file.getAbsoluteFile();
//getAbsoluteFile/getAbsolutePath:获取文件/目录绝对路径文件对象/字符串
System.out.println("getAbsoluteFile:" + absoluteFile);// getAbsoluteFile:/Users/jim/Desktop/Work/temp/java1221/test.txt
String absolutePath = file.getAbsolutePath();
System.out.println("getAbsolutePath:" + absolutePath);// getAbsolutePath:/Users/jim/Desktop/Work/temp/java1221/test.txt
//getCanonicalFile/getCanonicalPath:获取文件/目录相对路径文件对象/字符串
File canonicalFile = file.getCanonicalFile();//getCanonicalFile:/Users/jim/Desktop/Work/temp/java1221/test.txt
System.out.println("getCanonicalFile:" + canonicalFile);//getCanonicalPath:/Users/jim/Desktop/Work/temp/java1221/test.txt
String canonicalPath = file.getCanonicalPath();
System.out.println("getCanonicalPath:" + canonicalPath);
//getParentFile/getParent:获取文件/目录前方路径的文件对象/字符串
File parentFile = file.getParentFile();
System.out.println("getParentFile:" + parentFile);//getParentFile:/Users/jim/Desktop/Work/temp/java1221
String parent = file.getParent();
System.out.println("getParent:" + parent);//getParent:/Users/jim/Desktop/Work/temp/java1221
//getFreeSpace():获取文件所在硬盘的空闲空间大小
long freeSpace = file.getFreeSpace();
System.out.println("getFreeSpace:" + freeSpace);//getFreeSpace:52775346176
//getTotalSpace():获取文件所在硬盘空间的总大小
long totalSpace = file.getTotalSpace();
System.out.println("getTotalSpace:" + totalSpace);//getTotalSpace:121018208256
//getUsableSpace():获取文件所在硬盘的可用空间大小
long usableSpace = file.getUsableSpace();
System.out.println("getUsableSpace:" + usableSpace);//getUsableSpace:39060439040
//getPath():获取文件/目录路径的字符串
String path = file.getPath();
System.out.println("getPath:" + path);//getPath:/Users/jim/Desktop/Work/temp/java1221/test.txt
//getName():获取文件/目录名字符串
String name = file.getName();
System.out.println("getName:" + name);//getName:test.txt
//length():获取文件大小
long length = file.length();
System.out.println("length:" + length);//length:181
//method_删除方法();
//method_创建方法();
//method_构造方法();
}
}
(6)判断功能方法

import java.io.File;
import java.io.IOException;
public class Demo2_File {
public static void main(String[] args) throws IOException {
//判断方法
File file = new File("/Users/jim/Desktop/Work/temp/java1221/test.txt");
boolean exists = file.exists();
System.out.println(exists);//true
boolean file1 = file.isFile();
System.out.println(file1);//true
boolean directory = file.isDirectory();
System.out.println(directory);//false
boolean hidden = file.isHidden();
System.out.println(hidden);//false
//应用
File dir = new File("/Users/jim/Desktop/Work/temp/java12210/");
File file3 = new File(dir,"test.txt");
if(!dir.exists()){
dir.mkdirs();
}
file3.createNewFile();
System.out.println("创建文件成功");
}
}
(7)获取子目录/子文件功能方法

import java.io.File;
import java.io.IOException;
import java.util.Arrays;
public class Demo2_File {
public static void main(String[] args) throws IOException {
//获取子目录/子文件方法
File file = new File("/Users/jim/Desktop/Work/temp");
String[] list = file.list();
for (int i = 0; i < list.length; i++) {
System.out.println(list[i]);
}
File[] files = file.listFiles();
for (int i = 0; i < files.length; i++) {
System.out.println(files[i].getName());
}
}
}
import java.io.File;
import java.io.IOException;
import java.util.Arrays;
public class Demo2_File {
public static void getSubFile(File file) {
File[] list = file.listFiles();
for (int i = 0; i < list.length; i++) {
if (list[i].isDirectory()) {
getSubFile(list[i]);//递归调用
} else {
System.out.println(list[i]);
}
}
}
public static void main(String[] args) throws IOException {
//需求:获取一个目录下所有子目录及文件
//分析:{构造File对象,提供路径
// File对象 .listFiles() 获取该目录下子目录/文件}
// 遍历子目录/文件,判断是目录,再次{将目录构建File了对象
// .listFiles()...}
//结论:方法自己调用自己,递归调用。直接递归 A>>A /间接递归 A>>B>>C>>A
// 注意:递归调用必须具有可跳出条件,否则类似于死循环,出现内存溢出问题。
File file = new File("/Users/jim/Desktop/Work/temp");
getSubFile(file);
}
}
(8)移动/改名功能方法

import java.io.File;
import java.io.IOException;
import java.util.Arrays;
public class Demo2_File {
public static void main(String[] args) throws IOException {
//移动/重命名方法
File file = new File("/Users/jim/Desktop/Work/temp/java1221/demo.txt");
//File dest = new File("/Users/jim/Desktop/Work/temp/java1221/demo.txt");
File dest2 = new File("/Users/jim/Desktop/Work/temp/demo.txt");
boolean b = file.renameTo(dest2);
System.out.println(b);
}
}
1054

被折叠的 条评论
为什么被折叠?



