A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 0416朱珅平 中级黑马   /  2015-5-18 22:05  /  184 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

集合结合IO流实现
        -- 不要眼高手低,多敲,多写

1.复制目录下指定后缀的所有文件
        思路:
                1.封装目录
                2.获取目录下所有符合条件的文件
                        (file 代表文件对象)
                        FilenameFilter -- 文件名称过滤器 -- String[] names = file.list(FilenameFilter ff); -- accept方法
                                                                                         -- File[] listFiles(FilenameFilter filter)  
                        String[] names = file.list(); // 这个不合适
                        File[] files = file.listFiles();
                3.遍历File[] 得到每一个file对象
                4.进行复制
                        先改名再复制 -- 字符串的方法
                        先复制再改名 -- File的renameTo(File dest) 方法
                       
        回顾IO:
                字符流:
                        FileWriter 写入数据方式:
                                void write(char[] cbuf)
                                  写入字符数组。
                                abstract void write(char[] cbuf, int off, int len)
                                  写入字符数组的某一部分。
                                void write(int c)
                                  写入单个字符。
                                void write(String str)
                                  写入字符串。
                                void write(String str, int off, int len)
                                  写入字符串的某一部分。

                               
                        FileReader 读取数据方式
                                read()
                                        读取单个字符。
                                int read(char[] cbuf)
                                        将字符读入数组。
                                abstract  int read(char[] cbuf, int off, int len)
                                        将字符读入数组的某一部分。

                               
                字节流
                        FileInputStream 读取数据方式:
                                int read()
                                        从此输入流中读取一个数据字节。
                                int read(byte[] b)
                                        从此输入流中将最多 b.length 个字节的数据读入一个 byte 数组中。
                                int read(byte[] b, int off, int len)
                                        从此输入流中将最多 len 个字节的数据读入一个 byte 数组中。
                               
                        FileOutputStream 写入数据方式
                                void write(byte[] b)
                                        将 b.length 个字节从指定 byte 数组写入此文件输出流中。
                                void write(byte[] b, int off, int len)
                                        将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此文件输出流。
                                void write(int b)
                                        将指定字节写入此文件输出流。
               
                缓冲流
                        操作字符流
                                BufferedReader
                                        -- 补充特有:String readLine()
                                BufferedWriter
                                        -- 补充特有:void newLine()
                        操作字节流
                                BufferedInputStream
                                BufferedOutputStream
               
                文件的复制,标准的步骤
                        封装数据源
                        封装目的地
                        读写操作
                        释放资源
                       
               

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马