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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 吴豪 中级黑马   /  2015-8-15 22:42  /  383 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1. 字节流写入数据
        1)创建字节流对象
        2)调用写数据的方法
                write(int b)
                        写入一个字节
                write(byte[] bys)
                        写入一个字节数组
                write(byte[] bys, int start, int len)
                        写入一个字节数组的一部分
        3) 释放资源
       
2. FileInputStream 读取数据

        read()
                -- 一次读取一个字节
        read(byte[] bys)
                -- 一次读取一个字节数组
       
        注意:字节流读取数据直接显示在控制台,可能会出现中文乱码。但是写入文件中时不会出现。
       
        复制文件时:读取使用一次读取一个字节数组,写入采用一次写入一个字节数组的一部分。
       
3. 缓冲流
       
        缓冲流:仅提供缓冲的功能,实现数据的高效读写,底层的读写操作还是依赖于它包装的基本流。
       
        基本流:直接能够操作文件的流 -- 也就是说构造方法里面能直接传入File对象的流。
       
        BufferedWriter 缓冲字符输出流 写入数据:
                // 创建输出流对象
                BufferedWriter bw = new BufferedWriter(new FileWriter("a.txt"));
               
                // 写数据
                void write(char[] cbuf, int off, int len)
                        写入字符数组的某一部分。
                void write(int c)
                        写入单个字符。
                void write(String s, int off, int len)
                        写入字符串的某一部分。

                // 释放资源
                close()
       
        BufferedReader 缓冲字符输入流 读取数据:
                // 创建输入流对象
                BufferedReader bw = new BufferedReader(new FileReader("a.txt"));
               
                // 读数据
                int read()
                        读取一个字符
                int read()
                        读取一个字符数组
                // 释放资源
                close()
               
4. 简单总结
        对于文本文件(用windows自带记事本打开不乱码)
                基本字符流:
                        FileReader:
                                int read()
                                        读取单个字符。
                                int read(char[] chs)
                                        将字符读入数组。
                        FileWriter:
                                void write(int c)
                                        写入单个字符。
                                void write(char[] cbuf, int off, int len)
                                        写入字符数组的某一部分。
                               
                                void write(String str)
                                        写入字符串。

                缓冲字符流:
                        BufferedReader
                                同基本字符输入流
                               
                                特有:
                                        String readLine()
                                                -- 读取一行的数据,不包括换行符
                               
                        BufferedWriter
                                同基本字符输出流
                               
                                特有:
                                        newLine()
                                                -- 写入一个行分隔符
                                               
                                与readLine配合赋值文本文件:
                                        读:
                                        String readLine()
                                        写:
                                        write(String str)
                                        newLine()
                                        flush()
                               
                               
        对于二进制流数据(图片、音视频等等)
                基本字节流:
                        FileInputStream:
                                int read()
                                        读取单个字节。
                                int read(byte[] bys)
                                        将字节读入数组。
                        FileOutputStream:
                                void write(int b)
                                        写入单个字节。
                                void write(byte[] bys, int off, int len)
                                        写入字节数组的某一部分。

                缓冲字节流:
                        BuffereInputStream:
                                同基本字符输入流
                        BufferedOutputStream:
                                同基本字符输出流
                               
        最终我们采用的时候都是使用高效流并且一次读写一个数组的方式。
       
5. 键盘录入数据必须要自定义结束条件。       

6. 文件改名
        File类的方法
        boolean renameTo(File dest)
          重新命名此抽象路径名表示的文件。
               
        复制指定目录下指定后缀的文件案例注意事项:
                1) 分清文件和文件夹
                         -- 如果不小心把文件夹对象放到了流的构造方法,会报拒绝访问
                2) 先复制后改名
                        -- 必须保证改名操作在关流之后。流如果没关,会占用文件,改名失败。
               
               
               
               
               
               
               
       
       

1 个回复

倒序浏览
加油我也到21天了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马