zoukankan      html  css  js  c++  java
  • Java文件操作(一)

    当需要把内存中的数据写到持久化的设备上,这个动作叫输出output(写)操作。

    当需要把持久化设备上的数据读到内存中,这个动作叫做input(读)操作。

    以上两种输入和输出动作称为IO操作。

    1、File类的构造函数

      1.1 File(File parent,String child)

         1.2 File (String pathName)

      1.3 File (String parent, String child)

    //----------File(String pathName)--------------
    String pathname="F:\hello.txt";
    File f1= new File(pathname);
    System.out.println(f1);
    //----------File(String parent,String child)--------------    
    File f2 = new File("F:\","hello.txt");
    System.out.println(f2);

    2、File类的获取

      2.1 String getAbsolutepath()  返回抽象路径名的绝对路径名字符串。

      2.2 StringetName()  返回由此抽象路径名表示的文件或文件夹名称。

      2.3 String getPath()  将此抽象路径转换为一个路径名字符串。

      2.4 Long length() 返回抽象路径表示的文件的长度。

     1 File file = new File("F:\hello.txt");
     2 String absPath = file.getAbsolutePath();
     3 String path=file.getPath();
     4 String filename = file.getName();
     5 long size = file.length();
     6         
     7 System.out.println(absPath);
     8 System.out.println(path);
     9 System.out.println(filename);
    10 System.out.println(size);
    11 
    12 //----------输出结果-------------
    13 F:hello.txt
    14 F:hello.txt
    15 hello.txt
    16 9

    3、文件和文件夹的创建删除等。

      3.1 createNewFile()    当且仅当不存在此抽象路径指定的文件时,不可分割创建一个新的文件。只能创建文件,不能创建文件夹。

      3.2 delete() 删除此抽象路径下的文件或目录。

      3.3 exists()  测试此抽象路径名表示的文件夹或目录是否存在。

      3.4 isDirectory() 测试此路径是否为一个目录。

      3.5 isFile() 测试此路径是否是一个文件。

      3.6 mkdir() 创建此抽象路径指定的目录。

         boolean b1 = false;
            File file = new File("F:\myfirst.txt"); 
            try {
                 b1 = file.createNewFile();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            System.out.println(b1);
            //-------------删除文件或文件夹--------------
            //boolean b2 = file.delete();
            //System.out.println(b2);
            //------------判断文件是否存在---------------
            boolean b3 = file.exists();
            System.out.println(b3);
            //--------------目录操作,判断----------------
            File dir=new File("F:\abc");
            boolean b4 = dir.mkdir();
            System.out.println(b4);
            boolean b5 = dir.delete();
            System.out.println(b5);
            boolean b6 = dir.exists();
            System.out.println(b6);
            //----------------判断是否为一个文件或文件夹------------------
            boolean b7 = file.isFile();
            System.out.println(b7);
            System.out.println(file.isDirectory());

    4、 listFile()方法介绍

      4.1 list() 返回一个字符串数组,返回文件和目录的名字。

      4.2 listFiles() 返回一个抽象路径名数组,返回文件和目录的抽象路径。

     1                 File dir = new File("F:\");
     2         //-------------返回路径中的文件夹和文件的名字---------
     3         String[] names = dir.list();        
     4 //         for(String name : names){
     5 //            System.out.println(name);
     6 //        }
     7         //-------------返回路径中的文件夹和文件的全路径---------
     8         File[] files = dir.listFiles();
     9          for(File f : files){
    10              System.out.println(f);
    11          }        

    5、文件过滤器

      5.1 实现接口FilenameFilter的类实例可用于过滤器文件名

        实现方法 boolean accept(File dir, String name)

     1 File file =new File("F:\java_practice");
     2 File[] files = file.listFiles(new MyFileFilter());
     3         for(File f : files){
     4             System.out.println(f);
     5         }
     6 
     7 //创建实现FilenameFilter 接口的类MyFileFilter 
     8 public class MyFileFilter implements FilenameFilter {
     9 
    10     @Override
    11     public boolean accept(File arg0, String arg1) {
    12         // TODO Auto-generated method stub
    13         return arg1.endsWith(".txt");
    14     }
    15 
    16 }

       5.2 FileFilter 接口用于抽象路径名过滤

    File file =new File("F:\java_practice");
        //---------------------过滤是否是文件夹还是文件------------------------
            File[] files2 = file.listFiles(new FileFileterByDir());
            for(File f : files2){
                System.out.println(f);
            }
    1 public class FileFileterByDir implements FileFilter {
    2 
    3     @Override
    4     public boolean accept(File pathname) {
    5         // TODO Auto-generated method stub
    6         return pathname.isDirectory();
    7     }
    8 
    9 }
    
    
    
    
    

    6、递归打印所有子目录下中文件路径

    步骤:1、指定要打印的目录File对象

       2、调用getFileAll()方法

          2.1 获取指定目录的所有file对象。

          2.2 遍历得到每一个File对象

          2.3 判断当前File对象是否是目录;

            如果是,则调用GetFileAll()方法。

            如果不是,则打印路径名。

     1 File file =new File("F:\java_practice");
     2 //---------------------打印目录下所有的文件-----------------------
     3 getAllFile(file);
     4 
     5 public static void getAllFile(File file) {
     6     File[] files =file.listFiles();
     7     for(File f : files){
     8         if(f.isDirectory()){
     9             getAllFile(f);
    10         }else{
    11             System.out.println(f);
    12         }
    13             
    14     }
    15 }

    注:也可以加入过滤器,打印指定的文件名。

    总结:

      方法:1、public boolean createNewFile()创建文件。

         2、public boolean mkdir() 创建单层文件夹。

         3、public boolean mkdirs() 创建多层文件夹。

         4、public boolean delete() 删除文件或文件夹。

         5、public boolean isDirectory() 判断是否是文件夹。

         6、public boolean isFile() 判断是否是文件。

            7、public boolean exists() 判断文件夹或文件是否存在。

            8、public String getAbsolutePath() 获取当前File的绝对路径。

         9、public String  getName() 获取当前File对象的文件或文件夹名称。

         10、public long length() 获取当前文件或文件夹的大小。

         11、public File[ ] listFiles() 获取当前File对象目录中的所有文件和文件夹的绝对路径。

  • 相关阅读:
    BGP community和联邦实验
    BGP RR的设计原则
    BGP不可比较的AS间的度量问题的解决办法
    BGP理解错误的部署RR造成的环路
    BGP数据结构表
    BGP RR的环路避免机制
    BGP Lab RR & Loop (1)
    Lab BGP Summary
    70、对象复用的了解,零拷贝的了解
    66、malloc、realloc、calloc的区别
  • 原文地址:https://www.cnblogs.com/newway644617704/p/13584513.html
Copyright © 2011-2022 走看看