黑马程序员技术交流社区

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

作者: zhangxun    时间: 2014-9-7 10:32
标题: IO字节流总结
字节流:
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 = new FileReader("bufdemo.txt");
BufferedReader bufr  = new BufferedReader(fr);
String line = null;
while((line=bufr.readLine())!=null){  //readLine方法返回的时候是不带换行符的。
System.out.println(line);
}
bufr.close();
-----------------------------
//记住,只要一读取键盘录入,就用这句话。
BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(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();


作者: 新新人类嘿嘿嘿    时间: 2014-9-7 16:50
自己总结的技术博客吗




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