File类描述:
File类的描述是,FIle文件和目录路径名的抽象表示形式.即java中把文件或者目录(文件夹)都封装成File对象.也就是说如果我们要去操作硬盘上的文件,或者文件夹只要找到File这个类.
文件和目录路径名的抽象表示形式,File类的实例是不可变的.
File类的构造函数:
File(String pathname):将一个字符串路径封装成File对象
File(String parent,String child);传入一个父级路径和子级路径
File(File parent,String child)传入一个File类型的父级路径和子级路径.
File类的常用方法:
boolean createNewFile();指定路径不存在该文件时创建文件,返回true,否则返回false
boolean mkdir();当指定的单级文件夹不存在时创建文件夹并返回true,否则返回false.
boolean mkdirs();当指定的多级文件夹某一级文件夹不存在时,创建多级文件夹并返回 true,否则返回false.
boolean delete()删除文件或者删除单级文件夹.
绝对路径:固定不可改变的路径,以盘符开头
相对路径:相对某个参照物,不能以盘符开头.
在eclipse中相对路径相对应当前项目的根目录而言
注意:删除一个文件夹,这个文件夹下面不能有其他的文件和文件夹.
File类的判断功能:
boolean exists();判断指定路径的文件或文件夹是否存在
boolean isAbsolute();判断当前路径是否是绝对路径..
boolean isDirectory();判断当前的目录是否存在
boolean isFile();判断当前路径是否是一个文件
boolean isHidden()判断当前路径是否是隐藏文件.
File类的获取功能和修改名字功能
File getAbsoluteFile();获取文件的绝对路径,返回File对象
String getAbsolutePath()获取文件的绝对路径,返回路径的字符串.
String getParent()获取当前路径的父级路径,以字符串形式返回该父级路径.
File getParentFile()获取当前路径的父级路径,以字File对象形式返回该父级路径.,
String getName()获取文件或者文件夹的名称
String getPath();获取File对象中封装的路径
Long lastModified();以毫秒值返回最后修改时间
Long length();返回文件的字节数..
boolean renameTo(File dest) 将当前File对象所指向的路径修改为指定File所指向的路 径.
File类的其他获取功能
String[] list();以字符串数组的形式返回当前路径下所有的文件和文件夹的名称
File[] listFiles();以File对象的形式返回当前路径下所有的文件和文件夹的名称
Static File[] listRoots()获取计算机中所有的盘符
循环删除文件的案例:
* 注意:如果要删除一个目录,则需要先删除这个目录下的所有子文件和子目录
*
*/
public class RecurrenceTest2 {
public static void main(String[] args) {
File f = new File("d:\\a");
method(f);
}
//删除指定目录下所有文件和目录
public static void method(File file) {
if(file.isDirectory()) {
//干掉自己所有的子文件和子目录
//获取所有的子文件和子目录
File[] files = file.listFiles();
for (File f : files) {
if(f.isFile()) {
//直接干掉他
System.out.println(f.getName());
f.delete();
}
else if(f.isDirectory()) {
//继续查看是否还有文件和子目录
method(f);
}
}
//干掉自己
System.out.println(file.getName());
file.delete();
}
}
}
字符流和字节流
IO流分类
流向:
输入流: 读取数据 FileReader Reader
输出流: 写出数据 FileWriter Writer
数据类型:
字节流:
字节输入流 读取数据 inputstream
字节输出流 写出数据 outputstream
字符流
字符输入流 读取数据 Reader
字符输出流 写出数据 Writer
利用字符流拷贝文档,(非图片,音频,视频)
字节流可以操作所有类型的文件,因为所有的文件在计算机中都是以字节形式存储
而字符流只能用来操作纯文本类型的文件,不能操作字节类型的文件.
字节流也可以复制图片和文字.但是字符流只能复制文字
二进制文件只能使用字节流进行复制(使用window自带记事本打开读不懂的)
文本文件的复制既可以使用字符流,也可以使用字节流.