File

    技术2022-07-21  80

    * 〈File:文件和文件目录路径的抽象表示形式,与平台无关。〉 * * File能新建、删除、重命名文件和目录,但File不能访问文件内容本身。 * 如果需要访问文件内容本身,则需要使用输入/输出流。 * 想要在java程序中表示一个真实存在的文件或目录,那么必须有一个File对象,但是Java程序中的 * 一个File对象,可能没有一个真实存在的文件或者目录。 * File对象可以作为参数传递给流的构造器。 * * File类的使用: * 1.File一个对象,代表一个文件或者文件目录。 * 2.File类中涉及到关于文件或文件目录的创建、删除、重命名、修改时间、文件大小等方法。 * 并未涉及到写入或读取文件内容的操作,如果需要读取或写入文件内容,需要用到IO流来完成。 * 3.后续File类的对象常会作为参数传递到流的构造器中,指明读取或写入的“终点”。 /** * 如何创建File的实例 * @param args */ public static void main(String[] args) { /** * 1.public File(String pathname) * 以pathname为路径创建File对象,可以是绝对路径或者相对路径, * 如果pathname是相对路径,则默认的当前路径在系统属性user.dir中存储。 * * public File(String parent,String child) * 以parent为父路径,child为子路径创建File对象。 * * public File(File parent,String child) * 根据一个父File对象和子文件路径创建File对象 * * 相对路径:相较于某个路径下,指明的路径 * 绝对路径:E:\workspace\testDemo 具体到文件的位置 -- 包含盘符在内的文件或文件目录的路径。 * * 3.路径分隔符: * 在windows和DOS系统--- 路径用\\ * 在Linux和URL上--- 路径用/表示 * * */ File file = new File("hello.txt");//相对于当前module即testDemo的路径--E:\workspace\testDemo 这里找一个hello.txt File file1 = new File("E:\\workspace\\testDemo\\hello.txt");//相对于当前module即testDemo的路径--E:\workspace\testDemo 这里找一个hello.txt System.out.println(file); System.out.println(file1); //构造器2 File file3 = new File("E:\\workspace","testDemo"); System.out.println(file3);//输出上面的路径名 //构造器3 File file4 = new File(file3,"hi.txt"); System.out.println(file4); } /** * public String getAbsolutePath();获取绝对路径 * public String getPath();//获取路径 * public String getName();//获取名称 * public String getParent();//获取上层文件目录路径。若无,返回null * public long length(); 获取文件长度(即:字节数)。不能获取目录的长度 * public long lastModified();获取最后一次的修改时间,毫秒值 * * public String[] list();获取指定目录下的所有文件或者文件目录的名称数组 * public File[] listFiles();获取指定目录下的所有文件或者文件目录的File数组 * * public boolean renameTo(File file);把文件重命名为指定的文件路径 */ @Test public void test(){ File file = new File("Hello1.txt"); File file1 = new File("E:\\workspace\\testDemo\\hello.txt");//相对于当前module即testDemo的路径--E:\workspace\testDemo 这里找一个hello.txt System.out.println(file.getAbsolutePath()); System.out.println(file.getPath()); System.out.println(file.getName()); System.out.println(file.getParent()); System.out.println(file.length()); System.out.println(file.lastModified()); System.out.println(file.list()); System.out.println(file.listFiles()); } @Test public void test2(){ File file1 = new File("E:\\workspace\\testDemo"); // String[] list = file1.list(); // for(String str : list){ // System.out.println(str); // } File[] files = file1.listFiles(); for(File file : files){ System.out.println(file); } } /** * public boolean renameTo(File file);把文件重命名为指定的文件路径 * 比如:file1.renameTo(file2) * 要想保证返回true(即修改成功) ---- 1. 需要确保file1是真实存在的。2.需要确保file2是不存在的。 * @return */ @Test public void testChange(){ File file = new File("Hello1.txt"); File file1 = new File("E:\\workspace\\testDemo\\Hello2.txt"); boolean b = file.renameTo(file1); System.out.println(b); } /** * public boolean isDirectory();判断是否是文件目录 * public boolean isFile();判断是否是文件 * public boolean exists();判断是否存在 * public boolean canRead();判断是否可读 * public boolean canWrite();判断是否可写 * public boolean isHidden();判断是否隐藏 */ @Test public void test3(){ File file1 = new File("Hello2.txt"); // // File file1 = new File("Hello1.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()); } /** * 创建功能: * public boolean createNewFile();创建文件,若文件存在,则不创建,返回false, * public boolean mkdir();创建文件目录,如果此文件目录存在,就不创建了。如果此文件目录的上层目录不存在,也不创建。 * public boolean mkdirs();创建文件目录。如果上层文件目录不存在,一并创建 * * 注意事项:如果你创建文件或者文件目录没有写盘符路径,那么默认在项目的路径下。 * * public boolean delete();//删除文件或文件夹 * 删除注意: * 该删除操作不走回收站功能。 * 要删除一个文件夹,请注意该文件夹内不能包含文件或者其他目录。 */ @Test public void test4(){ File file = new File("Hi.txt"); if(file.exists()){ throw new RuntimeException("文件存在"); } try { file.createNewFile(); } catch (IOException e) { System.out.println("创建失败"); } //文件目录创建 File file1 = new File("E:\\workspace\\testDemo\\testIO"); boolean mkdir = file1.mkdir(); if(mkdir){ System.out.println("创建成功"); }else { System.out.println("已经存在"); } }
    Processed: 0.009, SQL: 9