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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wangzhiyong515 中级黑马   /  2014-5-16 21:16  /  1782 人查看  /  5 人回复  /   2 人收藏 转载请遵从CC协议 禁止商业使用本文

IO流:
        (1)IO流的分类
                A:流向分(要站在Java程序的角度)
                        输入流        读取数据
                        输出流        写出数据
                B:数据类型
                        字节流
                                字节输入流
                                字节输出流
                        字符流
                                字符输入流
                                字符输出流
               
                注意:
                        a:一般来说,如果没有说是按照什么分,默认指按照数据类型分。
                        b:什么时候用字符流?什么时候用字节流?
                                把要操作的文件用记事本打开,如果能够读懂里面的内容,就用字符流。
                                否则用字节流。如果你不知道,用字节流。
        (2)IO流的体系结构:
                字节流:
                        字节输入流 InputStream
                                        FileInputStream
                                        BufferedInputStream
                        字节输出流 OutputStream
                                        FileOutputStream
                                        BufferedOutputStream
                字符流:
                        字符输入流 Reader
                                        FileReader
                                        BufferedReader
                        字符输出流 Writer
                                        FileWriter
                                        BufferedWriter
        (3)FileWriter写出数据
                字符输出流操作步骤:
                        A:创建字符输出流对象。
                        B:调用wirte()方法
                        C:释放资源。

                代码体现:
                        FileWriter fw = new FileWriter("fw.txt");

                        fw.write("hello,IO,我来了");
                        fw.flush();

                        fw.close();

        (4)FileReader读取数据
                字符输入流操作步骤:
                        A:创建字符输入流对象。
                        B:调用read()方法,把数据显示。
                        C:释放资源。

                代码体现:
                        FileReader fr = new FileReader("fw.txt");

                        //方式1
                        int ch = 0;
                        while((ch=fr.read())!=-1) {
                                System.out.print((char)ch);
                        }

                        //方式2
                        char[] chs = new char[1024];
                        int len = 0;
                        while((len=fr.read(chs))!=-1) {
                                System.out.print(String.valueOf(chs,0,len));
                        }

                        fr.close();
        (5)案例:复制文本文件两种方式。
        (6)字符缓冲区类
                BufferedReader:
                        特有功能:
                                public String readLine():一次读取一行数据,只有数据没有换行符。
                BufferedWriter:
                        特有功能:
                                public void newLine():根据操作系统决定写入什么样的换行符。
        (7)案例:复制文本文件三种方式。

                用特有功能进行复制的代码:
                数据源:
                        c:\\a.txt
                目的地:
                        d:\\b.txt

                BufferedReader br = new BufferedReader(new FileReader("c:\\a.txt"));
                BufferedWriter bw = new BufferedWriter(new FileWriter("d:\\b.txt"));

                String line = null;
                while((line=br.readLine())!=null) {
                        bw.write(line);
                        bw.newLine();
                        bw.flush();
                }

                bw.close();
                br.close();
        (8)综合案例:
                A:把集合中的数据写到文本文件。
                B:把文本文件中的数据添加到集合中。
                C:编写一个程序,将d:\java目录下的所有.java文件复制到d:\jad目录下,
                  并将原来文件的扩展名从.java改为.jad。

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

5 个回复

倒序浏览
学习了,正在为IO流发愁呢
回复 使用道具 举报
不错,不过综合案例的代码怎么没有。
回复 使用道具 举报
A10655 发表于 2014-6-11 08:31
学习了,正在为IO流发愁呢

IO流很简单,只需要掌握几个核心案例就行啦
回复 使用道具 举报
不晓得回帖有没有技术分…
回复 使用道具 举报
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马