通过数据流、序列化和文件系统提供系统输入和输出
IO流分:字节流和字符流
字节流分:输入流和输出流
inputStream outputstream
字符流分:输入流(读流)和输出流(写流)
reader writer
包含了对文件和文件夹的操作方法,可通过File类对文件或文件夹进行操作(新建、删除、重命名等)。
例: File fi = new File("e:\\text\\a.txt");
例:File fi = new File("e:\\text","a.txt");
boolean isDirectory(); //判断是否是目录
boolean isFile(); //判断是否是文件
File getAbsolutePath(); //获得文件的绝对路径
boolean isHidden(); //判断是否是隐藏文件
boolean exists(); //判断所关联的文件或文件夹是否存在
boolean createNewFile(); //创建一个新的文件(仅当对象文件不存在时)
boolean mkdir(); //创建一个文件夹
//要用mkdir()创建目录,必须上一级目录存在,即最底层目录前面的目录全都存在
boolean mkdirs(); //创建一个文件夹
//要想把File对象包含的目录一次性全都创建好,可以使用mkdirs()方法。
boolean renameTo(File dest); //重命名文件,为文件或文件夹改名
boolean delete(); //删除指定的文件或文件夹
void deleteOnExit(); //在虚拟机终止时,请求删除此抽象路径名表示的文件或目录。
boolean equals(Object obj); //比较的文件名字相同为true,不同为false
文件管理:
String getName(); //获得文件名或目录名
String getParent(); //获得文件的上一级父目录的名字
File getParentFile(); //获得文件的上一级父目录的对象
long lastModified(); //获得文件的最后修改时间(毫秒,当前时间与格林时间(1970 年 1 月 1 日,00:00:00 GMT)之间的毫秒数)
long length(); //获得文件大小(长度),以字节为单位
String[] list(); //获得指定文件夹下的所有文件的名字
File[] listFiles(); //获得文件夹下的所有文件的对象
static File listRoots();//获得当前系统的盘符
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
//该类用来对日期字符串进行解析和格式化输出
System.out.println(sdf.format(毫秒数));
方法自己调用自己
(1)指定文件夹路径;
(2)判断是否是文件,是文件就打印文件路径(到最底层了);相反如果是目录,则继续;
(3)获取文件夹下所有文件对象;
(4)遍历对象数组,执行递归。
当某一功能要重复使用时。
递归时一定要明确结束条件。
public static void prints(File f){
if(f.isFile()){ //判断是否是文件
System.out.println(f.getPath());
}else if(f.isDirectory()){ //如果是文件夹
File[] fs=f.listFiles(); //得到下面所有的文件对象
for(File fa:fs){
prints(fa);
}
}
}
getParent()返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回 null。
getParentFile()返回此抽象路径名父目录的抽象路径名;如果此路径名没有指定父目录,则返回 null。