java.io.File
类:文件和文件目录路径的抽象表示形式,与平台无关。File
能新建、删除、重命名文件和目录,但 File
不能访问文件内容自己。 若是须要访问文件内容自己,则须要使用输入/输出流。File
对 象,可是Java程序中的一个File对象,可能没有一个真实存在的文件或目录。File
对象能够做为参数传递给流的构造器。如何建立File
类的实例
public File(String pathname):以pathname
为路径建立File
对象,能够是绝对路径或者相对路径,若是 pathname
是相对路径,则默认的当前路径在系统属性user.dir
中存储。java
File file1 = new File("hello.txt");// 相对于当前module File file2 = new File("F:\\Java\\JavaSenior\\month12-day07\\he.txt");// 绝对路径 System.out.println(file1);// hello.txt System.out.println(file2);// F:\Java\JavaSenior\month12-day07\he.txt
public File(String parent,String child):以parent
为父路径,child
为子路径建立File
对象。windows
File file3 = new File("F:\\Java\\JavaSenior","month12-day07"); System.out.println(file3);// F:\Java\JavaSenior\month12-day07
public File(File parent,String child):根据一个父File
对象和子文件路径建立File
对象。数组
File file4 = new File(file3, "hi.txt"); System.out.println(file4); // F:\Java\JavaSenior\month12-day07\hi.txt
相对路径:相较于某个路径下,指明的路径
绝对路径:包含盘符在内的文件或文件路径ui
路径分隔符
windows和DOS系统:\\
unix和URL:/
Java程序支持跨平台运行,所以路径分隔符要慎用。
为了解决这个隐患,File
类提供了一个常量: public static final String separator
。根据操做系统,动态的提供分隔符。操作系统
File file1 = new File("d:\\atguigu\\info.txt"); File file2 = new File("d:" + File.separator + "atguigu" + File.separator + "info.txt"); File file3 = new File("d:/atguigu");
public String getAbsolutePath():获取绝对路径 。
public String getPath() :获取路径 。
public String getName() :获取名称 。
public String getParent():获取上层文件目录路径。若无,返回null
。
public long length() :获取文件长度(即:字节数)。不能获取目录的长度。
public long lastModified() :获取最后一次的修改时间,毫秒值 。unix
以下方法适用于文件目录
public String[] list() :获取指定目录下的全部文件或者文件目录的名称数组 。
public File[] listFiles() :获取指定目录下的全部文件或者文件目录的File
数组。code
public void Test2() { File file1 = new File("hello.txt"); File file2 = new File("F:\\OfficeFile\\JAVA_IO\\hi.txt"); System.out.println(file1.getAbsolutePath()); System.out.println(file1.getName()); System.out.println(file1.getParent()); System.out.println(file1.length()); System.out.println(new Date(file1.lastModified())); System.out.println(); System.out.println(file2.getAbsolutePath()); System.out.println(file2.getName()); System.out.println(file2.getParent()); System.out.println(file2.length()); System.out.println(file2.lastModified()); }
public void test3() { File file = new File("F:\\Java\\JavaSenior\\month12-day07"); String[] list = file.list(); for (String s : list) { System.out.println(s); } File[] files = file.listFiles(); for (File s : files) { System.out.println(s); } }
public boolean renameTo(File dest):把文件重命名为指定的文件路径。
以 file1.renameTo(file2) 为例:
要像保证返回true,须要file1在硬盘中是存在的,且file2不能在硬盘中存在。对象
public void test4() { File file1 = new File("hello.txt"); File file2 = new File("F:\\OfficeFile\\JAVA_IO\\hi.txt"); boolean renameTo = file1.renameTo(file2); System.out.println(renameTo); }
public boolean isDirectory():判断是不是文件目录。
public boolean isFile() :判断是不是文件。
public boolean exists() :判断是否存在。
public boolean canRead() :判断是否可读。
public boolean canWrite() :判断是否可写。
public boolean isHidden() :判断是否隐藏get
public void test5() { File file1 = new File("hello.txt"); System.out.println(file1.isDirectory()); System.out.println(file1.isFile()); System.out.println(file1.exists()); System.out.println(file1.canRead()); System.out.println(file1.canWrite()); System.out.println(file1.isHidden()); System.out.println(); File file2 = new File("F:\\OfficeFile\\JAVA_IO"); System.out.println(file1.isDirectory()); System.out.println(file1.isFile()); System.out.println(file1.exists()); System.out.println(file1.canRead()); System.out.println(file1.canWrite()); System.out.println(file1.isHidden()); }
public boolean createNewFile() :建立文件。若文件存在,则不建立,返回false
。
public boolean mkdir() :建立文件目录。若是此文件目录存在,就不建立了。 若是此文件目录的上层目录不存在,也不建立。
public boolean mkdirs() :建立文件目录。若是上层文件目录不存在,一并建立。
public boolean delete():删除磁盘中的文件或者文件夹 删除注意事项: Java中的删除不走回收站。 要删除一个文件目录,请注意该文件目录内不能包含文件或者文件目录。it
文件的建立:
public void test6() { File file1 = new File("Hi.txt"); if (!file1.exists()) { try { boolean newFile = file1.createNewFile(); if (newFile) System.out.println("建立成功"); } catch (IOException e) { e.printStackTrace(); } }else { boolean delete = file1.delete(); if (delete) System.out.println("删除成功"); } }
文件目录的建立:
public void test7() { File file1 = new File("F:\\OfficeFile\\JAVA_IO\\IO01\\io03"); boolean mkdir = file1.mkdir(); if (mkdir) System.out.println("建立成功1"); File file2 = new File("F:\\OfficeFile\\JAVA_IO\\IO02\\io04"); boolean mkdirs = file2.mkdirs(); if (mkdirs) System.out.println("建立成功2"); }
FIle
类中涉及到关于文件或文件目录的建立、删除、重命名、修改时间、文件大小等方法,并未涉及到写入或读取文件内容的操做。若是须要读取或写入文件内容,必须使用IO
流来完成。