77、java的IO操作-File

来源:互联网 发布:阿里云服务器管理终端 编辑:程序博客网 时间:2024/05/17 23:05
一、File类的概述1、我们要想实现IO的操作,就必须知道硬盘上文件的表现形式。      而Java就提供了一个类File供我们使用。2、File:文件和目录(文件夹)路径名的抽象表示形式二、File类的构造方法1、File(String pathname):根据一个路径得到File对象2、File(String parent, String child):根据一个目录和一个子文件/目录得到File对象3、File(File parent, String child):根据一个父File对象和一个子文件/目录得到File对象public class FileDemo {public static void main(String[] args) {// File(String pathname):根据一个路径得到File对象// 把e:\\demo\\a.txt封装成一个File对象File file = new File("E:\\demo\\a.txt");// File(String parent, String child):根据一个目录和一个子文件/目录得到File对象File file2 = new File("E:\\demo", "a.txt");// File(File parent, String child):根据一个父File对象和一个子文件/目录得到File对象File file3 = new File("e:\\demo");File file4 = new File(file3, "a.txt");// 以上三种方式其实效果一样}}三、File类的成员方法之创建功能1、public boolean createNewFile():创建文件 如果存在这样的文件,就不创建了,如果父目录不存在,会抛出异常2、public boolean mkdir():创建文件夹 如果存在这样的文件夹,就不创建了,如果父目录不存在,返回false创建不成功3、public boolean mkdirs():创建文件夹,如果父文件夹不存在,会帮你创建出来,注意只能创建文件夹public class FileDemo {public static void main(String[] args) throws IOException {// 需求:我要在e盘目录下创建一个文件夹demoFile file = new File("e:\\demo");System.out.println("mkdir:" + file.mkdir());// 需求:我要在e盘目录demo下创建一个文件a.txtFile file2 = new File("e:\\demo\\a.txt");System.out.println("createNewFile:" + file2.createNewFile());// 需求:我要在e盘目录test下创建一个文件b.txt// Exception in thread "main" java.io.IOException: 系统找不到指定的路径。// 注意:要想在某个目录下创建内容,该目录首先必须存在。// File file3 = new File("e:\\test\\b.txt");// System.out.println("createNewFile:" + file3.createNewFile());// 需求:我要在e盘目录test下创建aaa目录// File file4 = new File("e:\\test\\aaa");// System.out.println("mkdir:" + file4.mkdir());// File file5 = new File("e:\\test");// File file6 = new File("e:\\test\\aaa");// System.out.println("mkdir:" + file5.mkdir());// System.out.println("mkdir:" + file6.mkdir());// 其实我们有更简单的方法File file7 = new File("e:\\aaa\\bbb\\ccc\\ddd");System.out.println("mkdirs:" + file7.mkdirs());// 看下面的这个东西:File file8 = new File("e:\\liuyi\\a.txt");System.out.println("mkdirs:" + file8.mkdirs());}}四、File类的成员方法之删除功能public boolean delete()只能删除单个文件或者空的文件夹注意:1、如果你创建文件或者文件夹忘了写盘符路径,那么,默认在项目路径下。2、要删除一个文件夹,请注意该文件夹内不能包含文件或者文件夹3、Java中的删除不走回收站。public class FileDemo {public static void main(String[] args) throws IOException {// 创建文件// File file = new File("e:\\a.txt");// System.out.println("createNewFile:" + file.createNewFile());// 我不小心写成这个样子了File file = new File("a.txt");System.out.println("createNewFile:" + file.createNewFile());// 继续玩几个File file2 = new File("aaa\\bbb\\ccc");System.out.println("mkdirs:" + file2.mkdirs());// 删除功能:我要删除a.txt这个文件File file3 = new File("a.txt");System.out.println("delete:" + file3.delete());// 删除功能:我要删除ccc这个文件夹File file4 = new File("aaa\\bbb\\ccc");System.out.println("delete:" + file4.delete());// 删除功能:我要删除aaa文件夹// File file5 = new File("aaa");// System.out.println("delete:" + file5.delete());File file6 = new File("aaa\\bbb");File file7 = new File("aaa");System.out.println("delete:" + file6.delete());System.out.println("delete:" + file7.delete());}}五、File类的成员方法之重命名功能public boolean renameTo(File dest)注意:1、如果路径名相同,就是改名。2、如果路径名不同,就是改名并剪切。路径以盘符开始:绝对路径c:\\a.txt路径不以盘符开始:相对路径a.txtpublic class FileDemo {public static void main(String[] args) {// 创建一个文件对象// File file = new File("林青霞.jpg");// // 需求:我要修改这个文件的名称为"东方不败.jpg"// File newFile = new File("东方不败.jpg");// System.out.println("renameTo:" + file.renameTo(newFile));File file2 = new File("东方不败.jpg");File newFile2 = new File("e:\\林青霞.jpg");System.out.println("renameTo:" + file2.renameTo(newFile2));}}六、File类的成员方法之判断功能1、public boolean isDirectory():判断是否是目录2、 public boolean isFile():判断是否是文件 3、 public boolean exists():判断是否存在 4、public boolean canRead():判断是否可读 5、public boolean canWrite():判断是否可写6、public boolean isHidden():判断是否隐藏public class FileDemo {public static void main(String[] args) {// 创建文件对象File file = new File("a.txt");System.out.println("isDirectory:" + file.isDirectory());// falseSystem.out.println("isFile:" + file.isFile());// trueSystem.out.println("exists:" + file.exists());// trueSystem.out.println("canRead:" + file.canRead());// trueSystem.out.println("canWrite:" + file.canWrite());// trueSystem.out.println("isHidden:" + file.isHidden());// false}}七、File类的成员方法之基本获取功能 1、public String getAbsolutePath():获取绝对路径2、public String getPath():获取相对路径3、public String getName():获取名称4、public long length():获取长度。字节数5、public long lastModified():获取最后一次的修改时间,毫秒值public class FileDemo {public static void main(String[] args) {// 创建文件对象File file = new File("demo\\test.txt");System.out.println("getAbsolutePath:" + file.getAbsolutePath());//getAbsolutePath:/Volumes/E/myeclipse_workspace/day19_File/demo\test.txtSystem.out.println("getPath:" + file.getPath());//getPath:demo\test.txtSystem.out.println("getName:" + file.getName());//getName:demo\test.txtSystem.out.println("length:" + file.length());//length:0System.out.println("lastModified:" + file.lastModified());//lastModified:0// 1416471971031Date d = new Date(1416471971031L);SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String s = sdf.format(d);System.out.println(s);//2014-11-20 16:26:11}}八、File类的成员方法之高级获取功能1、public String[] list():获取指定目录下的所有文件或者文件夹的名称数组2、public File[] listFiles():获取指定目录下的所有文件或者文件夹的File数组public class FileDemo {public static void main(String[] args) {// 指定一个目录File file = new File("e:\\");// public String[] list():获取指定目录下的所有文件或者文件夹的名称数组String[] strArray = file.list();for (String s : strArray) {System.out.println(s);}System.out.println("------------");// public File[] listFiles():获取指定目录下的所有文件或者文件夹的File数组File[] fileArray = file.listFiles();for (File f : fileArray) {System.out.println(f.getName());}}}