File类 操作文件或文件夹

来源:互联网 发布:plc编程师工资高吗 编辑:程序博客网 时间:2024/05/30 23:48

1、将文件系统中的文件或文件夹封装成对象,提供属性和方法对文件进行操作

2、方法:

creatNewFile();创建文件,若存在则不创建,返回false(输出流则是有无都创建)

boolean mkdir();创建一级文件夹;mkdirs();创建多级文件夹

boolean delete();删除文件;deleteOnExit()程序结束前删除文件

boolean canExecute():是否可被执行;boolean exists():文件是否存在

boolean isFile():是否是文件;isDirectory():是否是文件夹

boolean isHidden():是否是隐藏文件;isAbsolute():路径是否是绝对路径

String getName():文件名;String getPath():相对路径

String getParent():绝对路径的父目录,无则返回null,有上一级则返回上一级

String getAbsolutePath():获取绝对路径

boolean renameTo(File dest);:对文件重命名为dest

String[] list():列出当前目录所有文件名。目录必须存在

File[] list(FileNameFilter filter):对指定文件进行过滤,需实现FileNameFilter文件名过滤器

File[] listFiles():获取当前文件夹下的文件和文件夹





/** * File类  * @author Administrator * */import java.io.*;public class FileDeom1{    public static void main(String[] args)    {consMethod();    }    //创建File对象    public static void consMethod()    {//将a.txt封装成file对象,可以将已有的和未出现的文件或文件夹封装成对象File f1 = new File("a.txt");//第二种方式,  可以将文件名封装   好处  文件名可以为变量  File f2 = new File("c:\\abc","b.txt");//第三种   将路径封装File d = new File("c\\abc");File f3 = new File(d,"c.txt");sop("f1:" + f1);sop("f2:" + f2);sop("f3:" + f3);//File.separator  是路径分割符   可以跨平台File f4 = new File("c:"+File.separator +"abc" +File.separator +"zzz" + File.separator +"a.txt");sop("f4:" + f4);    }    public static void sop(Object obj)    {System.out.println(obj);    }    }




***************************************************邪恶的分割线**********************************************************************************************************************




import java.io.*;/** * File类常见方法: * 1, 创建, * boolean createNewFile(): 在指定位置创建文件,如果该文件已经存在, * 则不创建,返回false。和输出流不一样,输出流对象一定建立创建文件。 * 而且文件已经存在,会覆盖。 *  * boolean mkdir(): 创建文件夹 *  * boolean mkdirs(); 创建多级文件夹 * 2, 删除。 * boolean delete(): 删除失败返回false 删除指定文件 * void deleteOnExit():在程序退出时删除指定文件。 *  * 3,判断。 * boolean existe(): 判断文件是否存在 * ifFile(): 判断是否是文件 * isDirectory(): 判断是否为文件夹 * isHidden(): 判断是否为隐藏文件 *  * 4 获取信息。 *  * getName();获取文件或目录的名称 * getPath();获取路径名 转换为路径字符串 * getParent(); 返回路径名父目录的路径名字符串,如果没有有返回null *  * getAbsolutePath():获取绝对路径(返回字符串) * lastModified(): 获取最后一次修改的时间 * length() 文件大小 *  * @author Administrator * */public class FileDemo2{    public static void main(String[] args) throws IOException    {//method_1();//method_2();//method_3();//method_4();//method_5();method_6();    }        public static void method_1()throws IOException//调用底层要抛异常    {//创建文件对象File f = new File("file.txt");//程序退出的时候删除指定文件   这里是对象f.deleteOnExit();//建立文件 返回boolean类型//sop("create :" + f.createNewFile());//删除指定文件 返回boolean类型sop("delete: " + f.delete());    }        public static void method_2()    {File f = new File("file.txt");//判断文件是否存在sop("existe:" + f.exists());//判断文件是否能执行//sop("execute:" + f.canExecute());    }        public static void method_3()    {//创建文件夹, mkdir最多创建一级目录File dir = new File("abc\\kk");sop("mkdir: " + dir.mkdir());//创建多级文件夹 dir.mkdirs()//sop("mkdir: " + dir.mkdirs());    }        public static void method_4()    {File f = new File("file.txt");//判断文件对象是否是文件或者目录时,必须要先判断该文件//对象的内容是否存在  通过,exists判断//判断是否目录(文件夹)sop("dir:" + f.isDirectory());//判断是否是文件sop("file" + f.isFile());    }        public static void method_5()    {File f = new File("file.txt");//获取相对路径sop("path:" + f.getPath());//获取绝对路径sop("abspath" + f.getAbsolutePath());//该方法返回的是绝对路径父目录,如果获取的是相对路径,返回nullsop("parent:" + f.getParent());    }        public static void method_6()    {//建立对象File f1 = new File("D:/Student/java/test/demo.txt");File f2 = new File("D:/Student/java/test/demo2.txt");//改变文件的名字  将demo.txt 变成demo2.txtsop("rename: " + f1.renameTo(f2));    }            public static void sop(Object obj)    {System.out.println(obj);    }        }







***************************************************邪恶的分割线**********************************************************************************************************************



import java.io.File;//listRoots 列出可用的文件系统根。//list 列出指定目录下的所有可用文件//listFiles(FileFilter filter) public class FielDemo3{    public static void main(String[] args)    {//listRootsDemo();listDemo();    }        //列出机器里面的有效盘符    public static void listRootsDemo()    {File[] files = File.listRoots();for(File f: files){    System.out.println(f);}    }        //c盘下的目录 相当于dos 下 的 dir指令,不过可以看到隐藏文件    public static void listDemo()    {//只在c盘下File f = new File("c:\\");//调用list方法中的file对象必须封装了了一个目录,该目录必须存在String[] names = f.list();//for循环增强 for(String name : names){    System.out.println(name);}    }}






***************************************************邪恶的分割线**********************************************************************************************************************


/** * 列出目录文件下 .java 的所有文件  文件名过滤 * @author Administrator * */import java.io.*;public class FileDemo4{    public static void main(String[] args)    {method_1();//method_2();    }    public static void method_1()    {File dir = new File("D:\\Student\\java\\test");// 将目录的文件给字符串数组 、、传的是匿名内部类String[] arr = dir.list(new FilenameFilter(){    public boolean accept(File dir, String name)    {// return true;/* * if(name.endsWith(".bmp")) { return true; } return false; */// endWith 方法 返回结尾是否是参数里的真假return name.endsWith(".java");    }});System.out.println("len:" + arr.length);// for循环增强 输出目录中文件for (String name : arr){    System.out.println(name);}    }            //第二种 使用listFiles 经常用这种    public static void method_2()    {File dir = new File("D:\\Student\\java\\test");File[] files = dir.listFiles();for(File f : files){    System.out.println(f.getName() + ":" + f.length());}    }}



***************************************************邪恶的分割线**********************************************************************************************************************



/** * 需求:列出指定目录下文件或者文件夹,包含子目录的内容。 * 也就是列出指定目录下所有内容(使用递归的方法) * @author Administrator * */import java.io.*;public class FileDemo5{    public static void main(String[] args)    {// 创建文件对象File dir = new File("D:/Student/java/test");showDir(dir);    }    public static void showDir(File dir)    {// 提前打印出是哪个目录的System.out.println(dir);// 将文件对象传递给 文件数组 filesFile[] files = dir.listFiles();for (File f : files){    // 如果是目录 递归调用    if (f.isDirectory())    {showDir(f);    } else    {System.out.println(f);    }}    }}




***************************************************邪恶的分割线**********************************************************************************************************************


/** * 需求:删除一个带内容的目录 * 删除原理: * 在window中,删除目录是从里面往外删除的。 *  * 既然是从里面往外删除,就需要用到递归。 *  * @author Administrator * */import java.io.*;public class FileDemo6{    public static void main(String[] args)    {File dir = new File("D:\\Student\\java\\Test2\\test");removeDir(dir);    }    // 删除文件    public static void removeDir(File dir)    {File[] files = dir.listFiles();for (File f : files){    // 如果删除的是目录 那么递归调用删除方法    if (f.isDirectory())    {removeDir(f);    }    // 如果是文件那么删除    else    {System.out.println(f.toString() + "::" + f.delete());    }    // 一次递归结束 删除文件夹    System.out.println(dir + "::dir::" + dir.delete());}    }}





***************************************************邪恶的分割线**********************************************************************************************************************




/** * 需求: 将一个指定目录下的java文件的绝对路径,存储到一个文本文件中。 *  * 建立一个java文件列表 *  * 思路: * 1, 对指定的额目录进行递归。 * 2, 获取递归过程所有的java文件的路径。 * 3, 将这些路径存储到集合中。 * 4, 将集合中的数据写入到一个文件中。 *  * @author Administrator * */import java.io.*;import java.util.*;public class FileDemo7{    public static void main(String[] args) throws IOException    {//文件路径封装成对象File dir = new File("D:/Student/java");//创建集合List<File> list = new ArrayList<File>();fileToList(dir, list);// System.out.println(list.size());File file = new File(dir, "javalist.txt");writeToFile(list, file.toString());    }    // 传递 参数 为: 一个是文件对象, 一个是容器list    public static void fileToList(File dir, List<File> list)    {// 将所有文件对象给 文件数组 filesFile[] files = dir.listFiles();// 对文件数组进行遍历for (File f : files){    // 判断是否目录    if (f.isDirectory())    {// 如果是目录 递归调用fileToList(f, list);    } else    // 不是目录0    {// 获取名字 判断扩展名if (f.getName().endsWith(".java"))    ;list.add(f);// 如果是java文件存入容器中    }}    }    // 把容器中的数据写入到文件    public static void writeToFile(List<File> list, String javaListFile)    {// 定义写入缓冲流BufferedWriter bufw = null;try{    // 将缓冲流写入 这里包装了一下    bufw = new BufferedWriter(new FileWriter(javaListFile));    for (File f : list)    {// 循环的将路径名赋值给 字符串 pathString path = f.getAbsolutePath();// 写入文件bufw.write(path);// 换行bufw.newLine();// 刷新缓冲区bufw.flush();    }} catch (IOException e){    e.printStackTrace();} finally{    try    {// 关闭流bufw.close();    } catch (IOException e)    {e.printStackTrace();    }}    }}





***************************************************邪恶的分割线**********************************************************************************************************************



改名字,把.java改成.jad



import java.io.File;public class RemoveFileTest{    public static void main(String[] args)    {File source = new File("d:/jad");File[] files = source.listFiles();for(File f : files){    String name = f.getName();    String newName = name.replace(".java", ".jad");        File oldFile = new File(source,name);    File newFile = new File(source,newName);    boolean t =oldFile.renameTo(newFile);    System.out.print(t);}    }}



原创粉丝点击