IO:input(读、 输入) output(写、输出)
文件的读写
文件、文件夹(目录)操作
文件读写
按照流向来分:1.输入流(读) 2.输出流(写)
按照数据类型:1.字符流 2.字节流 本质上字符流只是对字节流的优化
按照功能划分:1.节点流 2.功能流
File :该类型的对象提供的API方法都是用来操作文件和文件夹
不能操作文件中的内容
文件路径:
1.绝对路径: 文件的访问路径
eg: C://Users/lenovo/Desktop/练习(1).docx
2.相对路径:结合上下文的路径来推断当前文件的路径
例如 ./练习(1).docx
构造方法的参数为文件路径,如果是相对路径,相对路径为当前工程路径
File file = new File("src/xuexi.txt");//使用的是相对路径
//判断文件是否存在
boolean n = file.exists();
System.out.println(n);
if(n) {
System.out.println("文件存在");
//删除文件或者空文件夹
boolean delete = file.delete();
System.out.println(delete);
}else {
System.out.println("文件不存在");
}
//创建对象
//创建对象
try {
//如果要创建的文件已经存在就返回false,未创建就返回true创建这个文件
boolean cnf =file.createNewFile();
System.out.println("cnf = " + cnf);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//获取文件属性信息
//获取文件属性信息
File wen = new File("src/xuexie.txt");
System.out.println(wen);
//获取文件名
//获取文件名
String name = file.getName();
System.out.println("name =" +name);
//获取文件路径(获取File方法中指定的路径给什么获取什么)
//获取文件路径(获取File方法中指定的路径给什么获取什么)
String path = file.getPath();
System.out.println("path =" + path);
//获取上一级目录 要是没有指定上级目录就返回null
//获取上一级目录 要是没有指定上级目录就返回null
String father = file.getParent();
System.out.println("father = "+ father);
//获取绝对路径
//获取绝对路径
File absPath = file.getAbsoluteFile();
System.out.println(absPath);
//判断文件是否可读写
file.canRead();//文件是否可读
file.canWrite();//文件是否可写
System.out.println(file.canRead());
//文件夹的创建,一次只能创建一个文件夹
//文件夹的创建,一次只能创建一个文件夹
File file = new File("src")
//遍历文件夹
//遍历文件夹
public static void search(File file,int level) {
if(file.isFile()) {
System.out.println(file.getName());
return;
}
//输出当前文件夹名称
System.out.println(file.getName());
//获取所有子文件
for(int i = 0; i < level; i++) {
System.out.print("-");
}
File[] files = file.listFiles();
level += 1;
for(File f : files) {
if(f.isFile()) {
for(int i = 0; i < level; i++) {
System.out.print("-");
}
System.out.println(f.getName());
}else {
search(f,level);//遍历
}
}
}