IO基础内容(File)

JavaIO基础内容

IO技术概述

  • Output 把内存中的数据存储到持久化设备上这个动作称为输出(写)Output操作
  • Input 把持久设备上的数据读取到内存中的这个动作称为输入(读)Input操作

上面两种操作成为IO操作

File类

  • File类是文件和目录路径名的抽象表示形式,Java中把文件或者目录(文件夹)都封装成File对象.
  • 当new一个File类的时,并不是去判断是否存在,只是创建出一个文件对象用来调用其内置方法
  • File类的构造方法
    • File(String pathname) // 项目全路径
    • File(String parent,String childen) // 父路径和子路径, 更加具有灵活性
    • File(File parent, String child) // 父路径用File类表示,这样可以调用File内的内置方法
  • File类的主要函数
    • mkdir() : 创建文件夹 如果存在这样的文件夹,就不创建了
    • mkdirs() : 创建文件夹,如果父文件夹不存在,会帮你创建出来
    • delete() : 删除文件或者文件夹
    • createNewFile() : 创建文件 如果存在这样的文件,就不创建了
    • getName() : 返回路径中表示的文件或者文件夹名
    • getAbsolutePath() : 获取绝对路径,返回String对象
    • getAbsoluteFile() : 获取绝对路径,返回File对象
    • exists() : 判断File构造方法中封装路径是否存在
    • isDirectory() : 判断File构造方法中封装的路径是不是文件夹
    • isFile() : 判断File构造方法中封装的路径是不是文件
    • String[] list() : 获取到File构造方法中封装的路径中的文件名和文件夹名
    • File[] listFiles() : 获取到,File构造方法中封装的路径中的文件和文件夹 返回的是FIle数组
    • File[] listRoots() : 列出可用的文件系统根 , windows下即盘符
  • 文件过滤 查找包含指定文件名的文件
  • 递归遍历目录的方法
    public class FileDemo {             
        public static void main(String[] args) {                 
           File dir = new File("d:\\eclipse");                 
           getAllDir(dir);             
        }             
        /*              
         *  定义方法,实现目录的全遍历              
         */             
    public static void getAllDir(File dir){                 
        System.out.println(dir);                 
        //调用方法listFiles()对目录,dir进行遍历                 
        File[] fileArr = dir.listFiles();                 
        for(File f : fileArr){                     
           //判断变量f表示的路径是不是文件夹                     
           if(f.isDirectory()){                         
              //是一个目录,就要去遍历这个目录                         
              //本方法,getAllDir,就是给个目录去遍历                         
              //继续调用getAllDir,传递他目录                         
              getAllDir(f);                     
           }else{                         
           System.out.println(f);                    
           }                 
         }             
      }         
   }
  • 文件过滤器

过滤一个目录下的指定扩展名的文件,或者包含某些关键字的文件夹

  • public String[] list(FilenameFilter filter)
  • public File[] listFiles(FileFilter filter)

实现过滤的时候需要自行编写过滤类并且实现 FilenameFilter / FIleFilter

            public class MyFilter implements FileFilter{
                public boolean accept(File pathname)  {
                    /*
                     * pathname 接受到的也是文件的全路径
                     * c:\\demo\\1.txt
                     * 对路径进行判断,如果是java文件,返回true,不是java文件,返回false
                     * 文件的后缀结尾是.java
                     */
                    //String name = pathname.getName();
                    return pathname.getName().endsWith(".java");
                    
                }
            }
  • 使用 File[] fileArr = file.listFiles(new MyFilter());

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏北京马哥教育

手把手教你用500行 Python 代码实现模板引擎

引言 大多数程序包含大量的逻辑,以及少量文本数据。编程语言被设计成适合这种类型的编程。但是一些编程任务只涉及一点逻辑,以及大量的文本数据。 对于这些任务,我...

3315
来自专栏决胜机器学习

Shell基本操作与命令

Shell基本操作与命令 (原创内容,转载请注明来源,谢谢) 本文主要是我最近学习shell语言的学习笔记,主要在于通过学习这些内容,达到看得懂shell脚...

3155
来自专栏架构师之路

十分钟学perl够用(客服MM都懂了)

零基础,perl语言,10分钟入门 1.Hello,World #!/usr/bin/perl -w print ("hello,world!\n"); #pr...

3507
来自专栏Linux驱动

编译make的出错提示解决方案

编译出错笔记: start.s:20: Error: no such instruction: `ldr r0,=WTCON' 错误:没有这样的指令 解决...

16410
来自专栏一“技”之长

iOS代码运行的磨刀石-预编译指令 原

所谓预编译,就是程序代码在编译之前,开发工具为我们预先做的一些工作。不要小瞧这些指令,没有它们,我们的代码可能寸步难行。

812
来自专栏宏伦工作室

全栈 - 4 Python 先学会基本语法

1867
来自专栏郭耀华‘s Blog

java实现基于关键字的文件夹(文件)的搜索、文件夹(文件)的复制、删除

最近在做一个项目,需要实现这几项功能,上网查了很多资料,自己研究了好几天终于实现了,现在与大家分享一下。 一、JAVA实现文件夹的搜索   在百度搜索N个技术文...

4027
来自专栏企鹅号快讯

如何写好python代码

写代码好比画画,好的代码就像一件艺术品,美观、可读性高,让人看着舒服。代码是写给人看的,不是写给机器看的,遵守一定的代码规范很重要,就像写作文需要总分总结构,这...

3567
来自专栏同步博客

Smarty的基本使用与总结

含义:Smarty是PHP的一个引擎模板,可以更好的进行逻辑与显示的分离,即我们常说的MVC,这个引擎的作用就是将C分离出来。

683
来自专栏程序员互动联盟

【答疑释惑】标准C语言如何操作文件?

C语言中操作文件功能都用ANSI C提供的一组标准库函数来实现。文件操作标准库函数有如下: fprintf:往文件中写格式化数据 fscanf:格式化读取文件中...

3349

扫码关注云+社区