File类

字节流:可以读取一切文件(以下为字节流内容)

字符流:读取纯文本文件比较方便,已经处理了乱码问题

文件创建

package testIO;

import java.io.File;
import java.io.IOException;

public class FileTest {
    public static void main(String[] args) {
        
        try {
            //创建一个新的普通文件
            File file1=new File("E:\\kaka.txt");
            boolean flag1=file1.createNewFile();//如果已存在,则创建失败
            System.out.println(flag1?"创建成功":"创建失败");
           
            //创建一个文件夹
            File file2=new File("E:\\kaka");
            boolean flag2=file2.mkdir();//如果已存在,则创建失败
            System.out.println(flag2?"创建成功":"创建失败");

            //创建多级文件夹
            File file3=new File("E:\\kakafa\\html\\tag");
            boolean flag3=file3.mkdirs();//如果已存在,则创建失败
            System.out.println(flag3?"创建成功":"创建失败");

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}


文件删除

package testIO;

import java.io.File;

public class FileTest2 {
    public static void main(String[] args) {
        File file1=new File("E:\\kaka.txt");
        boolean flag1=file1.delete();
        System.out.println(flag1?"删除成功":"删除失败");
    }
}

文件查询

import java.io.IOException;

public class FileTest3 {
    public static void main(String[] args) {
        //1.1查询某个路径的文件是否存在
        File file1=new File("E:\\kaka.txt");
        boolean flag1=file1.exists();
        if (flag1){
            System.out.println("查询的文件存在!");
        }else{

            try {
                file1.createNewFile();//如果不存在,则为其创建该路径下的文件,注意:createNewFile()创建具体类型的文件
            } catch (IOException e) {
                e.printStackTrace();
            }
            System.out.println("该路径下的文件不存在,已重新创建该txt文件!");

        }
        //1.2查询某个路径的文件夹是否存在
        File file2=new File("E:\\kaka");
        boolean flag2=file2.exists();
        if (flag2){
            System.out.println("查询的文件夹存在!");
        }else{

            file2.mkdir();//如果不存在,则为其创建该路径下的文件夹,注意:mkdir()创建文件夹
            System.out.println("该路径下的文件夹不存在,已重新创建该文件夹!");
        }


        File file3=new File("E:\\2021.txt");
        try {
            //2.获取文件大小
            file3.createNewFile();
            long size=file3.length();//返回文件长度(大小)--单位为字节,注意与String中的length()区别
            System.out.println("文件的大小为:"+size);

        } catch (IOException e) {
            e.printStackTrace();
        }

        //3.获取文件名
        String filename=file3.getName();
        System.out.println("文件的名字为:"+filename);
        //4.获取文件的路径
        String path=file3.getPath();
        System.out.println("path:"+path);


    }
}

递归遍历文件夹下所有文件

isDirectory() : 判断文件是否是文件夹

listFiles() : 查询某个文件夹下的所有文件

package testIO;

import java.io.File;

public class FileTest4 {

    public static void main(String[] args) {
        FileTest4.showFiles("E:\\");//静态方法可以不用创建对象就调用,非静态方法必须有了对象的实例才能调用
    }

    public static void showFiles(String pathname){
        File f1=new File(pathname);
        //判断文件是否是文件夹
        boolean flag1=f1.isDirectory();
        if (flag1){
            //选择某个文件夹下所有文件
            File[] files=f1.listFiles();
            //空指针报错files为空,可以改为普通if语句:if(int i=0;files!=null && i<files.length;i++){}
            for (File tempFile:files) {
                boolean flag2=tempFile.isDirectory();
                if (flag2){
                    showFiles(tempFile.getPath());
                }else {
                    //获取此文件路径
                    String filePath=f1.getPath();
                    System.out.println("普通文件:"+filePath);
                }
            }
        }else{
            //获取此文件路径
            String filePath=f1.getPath();
            System.out.println("普通文件:"+filePath);
        }

    }




}


有空指针异常

静态方法可以不用创建对象就调用,非静态方法必须有了对象的实例才能调用

class A{
 
 public void methodA(){
     // 菲静态方法,使用对象实例调用
 }
 
 public static void methodB(){
     // 静态方法,使用类名调用 :  A.methodB()
 }
  
 //调用示例
 public static void main(String[] args){
  
  A objA = new A();
  objA.methodA();
   
  A.methodB();
   
  //A.methodA() ,会报错
  //objA.methodB() ,不会报错,但是会警告,不建议这样使用
  
 }
}
posted @ 2021-07-14 13:52  卡卡发  阅读(47)  评论(0)    收藏  举报