01.File文件基本操作
1-创建File对象
/** * 创建我们 java.io.File对象 */ public static void test1() { //第一创建对象方式 File parent=new File("f:/lsh"); //设置一个目录对象 String child="刘诗华.txt"; //指定文件名 File file1=new File(parent, child); //目录对象,文件名 //第二种创建对象方式 指定一个文件名 表示方法为字符串 File file2=new File("f:/lsh/刘诗华.txt"); //第三种创建方式 目录和文件都是用字符表示,但是目录和文件是分开来的 File file3=new File("f:/lsh/","刘诗华.txt"); System.out.println("对象1="+file1); System.out.println("对象2="+file2); System.out.println("对象3="+file3); //打印结果如下显示 //对象1=f:\lsh\刘诗华.txt //对象2=f:\lsh\刘诗华.txt //对象3=f:\lsh\刘诗华.txt }
2.检查我们文件是否存在
public static void exists() { File file2=new File("f:/lsh/刘诗华.txt"); boolean b = file2.exists(); //如果硬盘上面存在刘诗华.txt文件 则会返回true 否则就是返回false System.out.println(b); //因为我的电脑上面没有文件,所以返回false }
3.创建文件
private static void createNewFile() throws IOException { File file2=new File("f:/lsh/刘诗华.txt"); boolean b = file2.exists(); //如果硬盘上面存在刘诗华.txt文件 则会返回true 否则就是返回false //如果不存在,则创建 //因为我们调用 file2.exists()得到的结果为 false 我们对结果取反之后 会得到 true,就会执行if代码块的程序 if(!b) { file2.createNewFile(); System.out.println("文件创建成功"); } }
4-修改文件名称
private static void renameTo() { File file2=new File("f:/lsh/刘诗华.txt"); //源文件名称 File dest=new File("f:/lsh/hello.txt"); //新文件名 // public boolean renameTo(File dest) JDK里面是文档是传入一个新File对象 file2.renameTo(dest); //执行文件更名操作 }
5.删除文件
private static void delete() { File file2=new File("f:/lsh/刘诗华.txt"); //要删除的文件对象 //判断文件是否存在,如果存在则执行删除delete()方法 if(file2.exists()) { file2.delete(); System.out.println("删除文件成功"); } }
6.创建目录文件夹
private static void mkdir() { //定义一个文件夹 File dir =new File("f:/lsh"); //判断文件夹是否存在 if(!dir.exists()) { dir.mkdir(); // mkdir方法创建 lsh一级目录 // dir.mkdirs(); // mkdirs方法会创建不存在父级目录文件 } }
7.修改文件夹名称
private static void modify() { //定义一个文件夹 File dir =new File("f:/lsh"); if(dir.exists()) { File dest=new File("f:/xxxx"); dir.renameTo(dest); } }
8.列表文件夹下面的所有的文件
private static void list() { File dir =new File("f:/xxxx"); if(dir.exists()) { // list() 返回的是一个字符串数组类型 String[] list = dir.list(); for (String string : list) { System.out.println(string); } } else { System.out.println("目录不存在"); } }
9.列表指定文件夹下面的文件,返回的是一个File对象数组
//列表指定文件夹下面的文件 private static void listFile() { File dir =new File("f:/xxxx"); if(dir.exists()) { // listFiles() 返回的是一个File数组对象 // 所以File的相关操作我们都可以方便使用 File[] list = dir.listFiles(); for (File file : list) { System.out.println(file); } } else { System.out.println("目录不存在"); } }
10.列表指定文件夹下面的文件,并做过滤
第一种采用匿名内部类
private static void filter() { File dir=new File("f:/xxxx"); if(!dir.exists()) { System.out.println("文件夹不存在"); return; } dir.listFiles(new FilenameFilter(){ public boolean accept(File dir, String name) { boolean b=false; if(dir.isFile() && name.endsWith("docx")) { b=true; } return b; } }); }
第二种方法采用实现接口方式来做
class Filter implements FilenameFilter { @Override public boolean accept(File dir, String name) { boolean b=false; //通过dir和name变量 创建一个file对象,如果是文件 并且是 docx结尾的文件,则返回true if(new File(dir,name).isFile() && name.endsWith("docx")) { b=true; } return b; } } private static void filter() { File dir=new File("f:/xxxx"); if(!dir.exists()) { System.out.println("文件夹不存在"); return; } Filter filter=new Filter(); File[] list = dir.listFiles(filter); for (File file : list) { System.out.println(file); } }
11.删除某个文件夹
public static void main(String[] args) { File dir=new File("f:/abc"); removeDir(dir); } //删除目录下面的所有文件和本目录 private static void removeDir(File dir) { //判断目录是否存在磁盘中 if(!dir.exists()) { System.out.println("对不起,目录不存在"); return; } //列表所有的文件信息 File[] list = dir.listFiles(); for (File file : list) { //不管是什么,如果是目录,下面有文件,则删除不成功 //如果是文件,或者是空目录,会直接删除的,这里不会报异常的,所有我们不用它 file.delete(); if(file.isDirectory()) { //采用递归方法进行删除 removeDir(file); } } //最后把自己的目录(空)也删除掉 dir.delete(); }

浙公网安备 33010602011771号