File类
概述:
1.File:翻译是文件,用于表达java中的路径名。
2.路径:用于表示文件或者文件夹在当前系统中的位置
3.路径的分类:
绝对路径,没有任何的歧义,也没有任何的前提条件,Windows,从盘符开始的路径,例如"D:/a/b/c/d/a.txt"
相对路径,相对于某个文件的路径。
构造方法:
1.File(String path)
将一个字符串描述的路径,封装成一个 File对象。
2.File(String parent,String Child)
将两个字符串(父级路径, 子级路径),拼接之后形成的路径封装成一个File对象。
3.File(File parent, String child)
将File类型的父级路径和String类型的字节路径拼接成一个新路径,封装成File对象
注意:
创建好File对象后,只是封装了一个路径, 和磁盘上是否有这个路径无关。
创建功能
1、说明:
最终创建出来的是一个文件还是文件夹,不取决于路径名称
取决于调用的什么方法去创建
2、创建文件:
createNewFile()
3、创建文件夹:
mkdir()
创建文件夹,如果父级路径不存在,则文件夹创建失败
mkdirs()
创建文件夹,如果父级路径不存在,则自动创建父级路径,再创建子级路径
练习:在D盘下的a/b/c/d文件夹中创建一个HelloWorld.txt。
package File类;
import java.io.File;
import java.io.IOException;
public class Test01 {
public static void main(String[] args) throws IOException {
File f = new File("D:/a/b/c/d");
f.mkdirs();
File ff = new File(f,"HelloWorld.txt");
ff.createNewFile();
}
}
删除:
1、方法名称:
delete()
2、既可以删除文件,也可以删除文件夹
3、注意事项:
1、删除的时候不走回收站,直接删除
2、不能删除非空文件夹
重命名的功能
1、方法名称
renameTo(File dest)
2、注意事项:
1、方法的调用者,是一个File对象,方法的参数是另外一个File对象
2、调用者是当前修改之前的路径对象,参数是要修改为的路径对象
3、如果改了父级路径,就是剪切,如果不改父级路径就是重命名
示例代码
import java.io.File;
public class Demo05_File的重命名功能 {
public static void main(String[] args) {
File ori = new File("x/a.txt");
File dest = new File("a/b/c/a.txt");
ori.renameTo(dest);
File f = new File("a/b/c/f.txt");
dest.renameTo(f);
}
}
判断功能
1、exists(),判断调用者路径是否存在
2、isFile(),判断调用者是否是一个文件
3、isDirectory(),判断调用者是否是一个文件夹
示例代码:
import java.io.File;
public class Demo06_File的判断功能 {
public static void main(String[] args) {
File a = new File("a");
System.out.println(a.exists());
System.out.println(a.isFile());
System.out.println(a.isDirectory());
}
}
获取功能
1、获取路径三个方法:
getName()
获取最短的那个文件或者文件夹名称
getPath()
获取相对路径,构造方法中传入的那个字符串
getAbsolutePath()
获取绝对路径
2、获取文件或者文件夹属性的方法
length()
获取文件的字节个数
只能针对文件使用,不能针对文件夹使用
lastModified()
获取文件的最后修改时间
3、获取文件夹中内容的方法
String[] list()
返回文件夹中的所有内容的名称(不包含子文件夹中的内容)
File[] listFiles()
返回文件夹中的所有内容的File对象(不包含子文件夹中的内容)
注意事项:
这两个方法只能针对文件夹使用,不能针对文件使用
练习:定义一个方法:键盘录入一个字符串,表示一个文件夹路径,如果不是文件夹路径则提示重新录入
package File类;
import java.io.File;
import java.util.Scanner;
public class Test02 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (true){
String path = sc.next();
File f = new File(path);
if (f.isDirectory()&&f.exists()){
System.out.println("录入成功");
break;
}else {
System.out.println("请重新录入");
}
}
}
}
IO流
介绍
1、IO:I/O,Input/Output,输入/输出
这是根据流向来进行描述的方式,究竟是输入还是输出,站在内存的角度看待问题。所有从其他设备到内存的过程,称为“输入”;所有从内存到其他设备的过程,称为“输出”。
2、java中操作输入输出使用的都是流对象,都是在io包中的类。
IO分类
1、IO流有非常多,非常复杂庞大的一个体系,需要对这些类型进行分类,分类方式有两种:按照流向分类;按照能处理的数据的类型分类
2、按照流向:
输入流
输出流
3、按照操作数据: