疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

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());