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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 唐溪永 黑马帝   /  2012-2-22 23:40  /  2321 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


输入输出流的理解:在java使用流的机制进行数据的传送,从文件到内存是输入流,从内存到文件是输出流,输入流可以通过 read读取,输出流以write或print写入,这个相当的明白,但是下面就有点晕了,谁能写个例子解答下:
对于流可以是分为高层流和低层流,低层以一个字节或字符为单位进行处理,高层流以一批数据为单位进行处理。
难道,低层流就不能用一批数据为单位进行处理,高层流就不能以字节或字符为单位进行处理?
       

评分

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

查看全部评分

2 个回复

倒序浏览
我以前在网上看到过类似的例子:你看看吧
这是一个读写文件的程序,用了两种方式一种是低层流另一种是高层流
import java.io.FileWriter;
import java.io.InputStream;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.FileReader;


public class Untitled1 {
    public static void writeFileChar() throws Exception {
        FileWriter f = new FileWriter("c:\\aa.txt");
        InputStream is = System.in;
        int c = is.read();
        while (((char) c) != 'x') {
            f.write(c);
            c = is.read();
        }
        f.close();
        is.close();
    }

    public static void writeFileString() throws Exception {
        FileWriter f = new FileWriter("c:\\aa.txt");
        BufferedWriter bwr=new BufferedWriter(f);
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        String c = bf.readLine();
        while (!c.equals("stop")) {
            bwr.write(c+"\r\n");
            c = bf.readLine();
        }
        bwr.close();
        f.close();
        bf.close();
    }
   
    public static void readFileChar() throws Exception {
       FileReader f = new FileReader("c:\\aa.txt");
       int c = f.read();
       while (c!=-1) {
           System.out.print((char)c);
           c=f.read();
       }
       f.close();
   }

   public static void readFileString() throws Exception {
       BufferedReader bf = new BufferedReader(new FileReader("c:\\aa.txt"));
       String c = bf.readLine();
       while (c!=null)
       {
           System.out.println(c);
           c=bf.readLine();
       }
       bf.close();
   }


    public static void main(String[] args) throws Exception {
        readFileString();
    }
}

评分

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

查看全部评分

回复 使用道具 举报
高层流是对底层流进行了一次包装(加了几个缓冲区)
最后还是会以底层流的方式读写,

评分

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

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马