day19:FileFilter&IO流

本文详细介绍了Java中的FileFilter接口用于过滤文件,以及字节流和字符流的区别和使用,包括InputStream和OutputStream家族,如FileInputStream和FileOutputStream,以及Reader和Writer家族,如FileReader和FileWriter。此外,还提到了Properties类在处理配置文件时的作用,并强调了IO流的命名规则和数据流向。

FileFilter
    File[] listFiles(FileFilter f)
    文件过滤器
        File[] fileArr = dir.listFiles(new FileFilter() {
            @Override
            public boolean accept(File pathname) {
                if (pathname.isDirectory()){
                    return  false;
                }
                return pathname.getName().toLowerCase().endsWith(".java");
            }
        });
            将当前文件夹下 每一个文件都传入到方法中
                 我们自己写代码进行判断
                 如果返回true 则将当前文件 放入到数组中
                 如果返回false 则当前文件 不放入到数组中

                 如果我们想要所有.java文件 那么只要java返回true
                 其他文件 返回false即可

IO流
    按照操作的数据不同
        字节流
            操作字节的流  计算机中一切数据都是以2进制存储
计算机的中基本单位就是字节 所以字节流可以操作一切数据
 比如 文件 视频 音频 压缩包 ...
                字节输入流
            InputStream
                      read 读字节

            FileInputStream  文件字节输入流
                    java.io.InputStream 
                        所有字节输入流的超类 抽象类
                    方法
                        int read() 读一个字节  返回读取到的字节 如果没有数据 返回-1
int read(byte[] bytes) 读一个字节数组
void close() 关闭资源
                            byte[] bytes: 缓冲作用 用来存储读取到的数据
返回值: 每次读取的有效字节数 返回-1 代表读取到末尾
                    常用子类
                        java.io.FileInputStream
              构造方法 绑定数据源
public FileInputStream(String path)
public FileInputStream(File file)
                字节输出流
            OutputStream
                      write 写字节

            FileOutputStream  文件字节输出流
                    java.io.OutputStream
                        所有字节输出流的超类 抽象类1
                    方法
                        public void write(int b ) 写一个字节
public void write(byte[] bytes) 写一个字节数组
public void write(byte[] bytes,int start,int length) 写字节数组的一部分
public void close() 关闭资源 IO流对象本身并没有读写功能 而是调用操作系统的读写功能
当读写完毕后 应该告知操作系统 释放资源
                    常用子类
                        java.io.FileOutputStream
                     构造方法 绑定数据目的
public FileOutpputStream(String path)
public FileOutpputStream(File file)
如果没有对应文件 则创建对应文件
如果文件已经存在 则创建一个新文件 覆盖原来的文件
                    续写
                        public FileOutputStream(File file,boolean append)
OutputStream out = new FileOutputStream("d:\\work\\abc\\1.txt",true);
        字符流
            操作字符的流  只能操作文本文件
文本文件:用记事本打开 不乱码的文件  比如.txt .java .css .js .html
                字符输入流
           Reader
                      read 读字符
            FileReader    文件字符输入流
                    java.io.Reader  
                        所有字符输入流的超类 抽象类
                    方法
                        int read() 读一个字符
int read(char[] chs) 读一个字符数组
void close() 关闭资源
                    常用子类
                        java.io.FileReader
构造方法 绑定数据源
       public FileReader(String path)
       public FileReader(File file)
                字符输出流
           Writer
                      write 写字符
            FileWriter    文件字符输出流
                    java.io.Writer  
                         所有字符输出流的超类  抽象类
                    方法
                        write(int c)  写一个字符
write(char[] chs) 写一个字符数组
write(char[] chs,int start ,int length ) 写字符数组的一部分
write(String str) 写字符串
flush() 刷新缓冲区 不刷新缓冲区 数据不进入到数据目的
close() 关闭资源
                    常用子类
                        java.io.FileWriter
构造方法绑定数据目的
public FileWriter(String path);
public FileWriter(String path,boolean append);
public FileWriter(File file);
public FileWriter(File file,boolean append);
    Properties
        java.util.Properties
        特点
            1.继承自Hashtable 实现了Map接口
2.没有泛型 键是String 值String 不允许null键 null值
3.可以和IO直接结合使用
        方法
            String setProperty(String key ,String value)
String getProperty(Object key)
set<String> stringPropertyNames()
                Properties p = new Properties();
Reader r = new FileReader("day20\\person.properties");
p.load(r);
p.close();
    按照数据的流向不同
        输入流
            硬盘的文件  --- > Java程序
硬盘 ---> 内存
        输出流
             java程序  --- > 硬盘的文件
内存 ---- > 硬盘
    IO流的命名规则
        一般情况 前面是这个流能操作什么 能干什么
后面是这个流的顶级父类是谁   这样的好处 一眼就清楚是什么流

2.IO流重点

3.开心充实

4.BufferWriter/Reader    ObjectStrem  PrintWrite
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值