File类_1

IO流

定义

输入流(input):从数据源到程序的操作

输出流(output):从程序到目的地的操作

按照处理数据的单元分

  • 字符流:以字符为单位获取数据,命名上以Reader/Writer 结尾的流一般是字符流吗,顶级类为Reader、Writer。

  • 字节流:以字节为单位获取数据,命名上一Stream结尾的流一般是字节流,顶级类为InputStream、OutputStream

按照处理对象不同分类

  • 节点流:可以从数据源或目的地读写数据,如 FileInputStream、FileReader等。

  • 处理流:不直接连接到数据源或目的地,是”处理流的流“。通过对其他流的处理提高程序的性能,如BufferedInputstream、BufferedReader等,处理流也叫包装流。

  • 节点流处于IO操作的第一线,所有操作必须经过他们进行;处理流可以对节点流进行包装,提高性能或提高程序的灵活性。

file类的构造方法

  • 静态变量为 文件路径或文件名

    File file = new File("路径名")
    system.out.println(file)

     

  • 静态变量为父路径和子路径(父路径和子路径合为一个字符串 )

    File file = new File("父路径"+"子路径")
    system.out.println(file)
  • 静态变量为父File和子路径(优点为可以对父路径做一些方法操作)

    File parent = new File("路径名")
    File file = new File(parent+"子路径")
    system.out.println(file)

File类获取功能的方法

  • Public String getAbsolutePath() 返回该file绝对路径名字符串

  • Public String getPath() 将此file转换为路径名字符串

  • Public String getName() 获取此file代表的结尾的目录名或文件名

  • Public Long length() 返回此file表示文件的大小,以字节为单位

    public class TestIO {
       public static void main(String[] args) {
           show01();
      }

       private static void show01() {
           File file = new File("D:\\java\\a.txt");
           //- Public String getAbsolutePath()     返回该file绝对路径名字符串
           System.out.println(file.getAbsoluteFile());
           //- Public String getPath()   将此file转换为路径名字符串
           System.out.println(file.getPath());
           //- Public String   getName() 获取此file代表的目录名或文件名
           System.out.println(file.getName());
           //- Public Long Length() 返回此file表示文件的长度
           System.out.println(file.length());
      }
    }

    结果为
    D:\java\a.txt
    D:\java\a.txt
    a.txt
    0

     

File类中判断功能的方法

  • Public boolean exists() 判断此File是否存在

  • Public boolean isDirectory() 判断此File是否为目录

  • Public boolean isFile() 判断此File是否为文件

    public class TestIO02 {
      public static void main(String[] args) {
          show01();
      }

      private static void show01() {
          File file = new File("E:\\java\\a.txt");
          //- Public boolean exists()   判断此File是否存在
          System.out.println(file.exists());
          //- Public boolean isDirectory() 判断此File是否为目录
          System.out.println(file.isDirectory());
          //- Public boolean isFile() 判断此File是否为文件
          System.out.println(file.isFile());
      }
    }
    输出结果:
    true
    false
    true

创建和删除目录文件的方法

  • Public boolean createNewFile() 当且仅当具有该名称的文件尚不存在时,创建一个该名称的空文件

  • Public boolean delete() 删除该名称的文件或目录

  • Public boolean mkdir() 创建此file代表的目录

  • Public boolean mkdirs() 创建此file代表的目录,包括任何必须但不存在的父目录

    public static void main(String[] args) throws IOException {
           show();
      }

       private static void show() throws IOException {
           File file = new File("E:\\java\\java01");
           //检测该文件夹是否存在
           System.out.println(file.exists());
           if (file.exists()==false){
               System.out.println(file.mkdir());
          }
           //检测该文件是否存在
           File f2 = new File(file,"b.txt");
           if (f2.exists()==false){
               System.out.println("该文件不存在正在创建..."+f2.createNewFile());
          }
           //文件创建了,尝试删除
           System.out.println(f2.delete());
           if (f2.exists()==false){
               System.out.println("该文件已经被删除!");
          }
      }
    输出结果:
    true
    该文件不存在正在创建...true
    true
    该文件已经被删除!

File类遍历目录功能

  • public String[] list() 返回一个String数组,表示该File目录下的所有子文件和目录

  • public File[] listFiles() 返回一个File数组,表示该File目录下的所有子文件和目录

    注意

    • list()和listFile() 遍历的是构造方法中所给出的目录

    • 若构造方法中的目录不存在,则会抛出一个空指针异常

    • 若构造方法中的方法不是一个目录,也会抛出一个空指针异常

    public class TestIO04 {
       public static void main(String[] args) {
           show();
      }

       private static void show() {
           File file = new File("F:\\java\\IO流\\01 File类");
           //声明一个String的数组 接收file.list()数据
           String[] f1=file.list();
           //输出String数组中的数据
           System.out.println("输出String数组中的数据:");
           for (int i = 0; i <f1.length ; i++) {
               System.out.println(f1[i]);
          }
           //声明一个String的数组 接收file.listFiles()数据
           File[] f2 = file.listFiles();
           //输出File数组中的数据
           System.out.println("File数组中的数据:");
           for (int i = 0; i <f2.length ; i++) {
               System.out.println(f2[i]);
          }

      }
    }
    输出结果:
    输出String数组中的数据:
    1_8_1_01_File类的概述.avi
    1_8_1_02_File类的静态成员变量.avi
    1_8_1_03_绝对路径和相对路径.avi
    1_8_1_04_File类的构造方法.avi
    1_8_1_05_File类获取功能的方法.avi
    1_8_1_06_File类判断功能的方法.avi
    1_8_1_07_File类创建删除功能的方法.avi
    1_8_1_08_File类遍历(文件夹)目录功能.avi
    File数组中的数据:
    F:\java\IO流\01 File类\1_8_1_01_File类的概述.avi
    F:\java\IO流\01 File类\1_8_1_02_File类的静态成员变量.avi
    F:\java\IO流\01 File类\1_8_1_03_绝对路径和相对路径.avi
    F:\java\IO流\01 File类\1_8_1_04_File类的构造方法.avi
    F:\java\IO流\01 File类\1_8_1_05_File类获取功能的方法.avi
    F:\java\IO流\01 File类\1_8_1_06_File类判断功能的方法.avi
    F:\java\IO流\01 File类\1_8_1_07_File类创建删除功能的方法.avi
    F:\java\IO流\01 File类\1_8_1_08_File类遍历(文件夹)目录功能.avi

     

  •  

posted @ 2021-06-07 15:34  Lexian  阅读(333)  评论(0)    收藏  举报