黑马程序员技术交流社区

标题: 字节流 [打印本页]

作者: Hey丶小黑    时间: 2014-8-6 11:17
标题: 字节流
字节流:
InputStream是表示字节输入流的所有类的超类。
    |--- FileInputStream从文件系统中的某个文件中获得输入字节。哪些文件可用取决于主机环境。FileInputStream用于读取诸如图像数据之类的原始字节流。要读取字符流,请考虑使用 FileReader
     |--- FilterInputStream包含其他一些输入流,它将这些流用作其基本数据源,它可以直接传输数据或提供一些额外的功能。
       |--- BufferedInputStream该类实现缓冲的输入流。
       |--- Stream
     |--- ObjectInputStream
     |--- PipedInputStream
-----------------------------------------------
OutputStream此抽象类是表示输出字节流的所有类的超类。
    |--- FileOutputStream文件输出流是用于将数据写入 File FileDescriptor 的输出流。
     |--- FilterOutputStream此类是过滤输出流的所有类的超类。
       |--- BufferedOutputStream该类实现缓冲的输出流。
       |--- PrintStream
       |--- DataOutputStream
     |--- ObjectOutputStream
     |--- PipedOutputStream
--------------------------------
缓冲区是提高效率用的,给谁提高呢?
BufferedWriter是给字符输出流提高效率用的,那就意味着,缓冲区对象建立时,必须要先有流对象。明确要提高具体的流对象的效率。
FileWriter fw = new FileWriter("bufdemo.txt");
    BufferedWriter bufw =new BufferedWriter(fw);//让缓冲区和指定流相关联。
    for(int x=0; x<4;x++){
        bufw.write(x+"abc");
        bufw.newLine(); //写入一个换行符,这个换行符可以依据平台的不同写入不同的换行符。
        bufw.flush();//对缓冲区进行刷新,可以让数据到目的地中。
    }
    bufw.close();//关闭缓冲区,其实就是在关闭具体的流。
-----------------------------
BufferedReader
    FileReader fr = newFileReader("bufdemo.txt");
    BufferedReaderbufr  = new BufferedReader(fr);
    String line = null;
    while((line=bufr.readLine())!=null){  //readLine方法返回的时候是不带换行符的。
        System.out.println(line);
    }
    bufr.close();
-----------------------------
//记住,只要一读取键盘录入,就用这句话。
BufferedReader bufr = new BufferedReader(newInputStreamReader(System.in));
BufferedWriter bufw = new BufferedWriter(newOutputStreamWriter(System.out));//输出到控制台
String line = null;
while((line=bufr.readLine())!=null){
    if("over".equals(line))
        break;
    bufw.write(line.toUpperCase());//将输入的字符转成大写字符输出
    bufw.newLine();
    bufw.flush();
    }
bufw.close();
bufr.close();






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2