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

© 沐子松/kf 中级黑马   /  2014-6-13 11:32  /  747 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1.流的分类
方向分类:输入流,输出流
数据单位分类:字节流,字符流
功能分类:节点流,处理流


2.以stream结尾的全式字节流,reader结尾时字符流


3. InputStream 的基本方法


4.OutPutStream


5.节点流类型


6.FileReader和FileWriter 一个字符一个字符读写数据,不带缓冲区


7.BufferInputStream和BufferOutputStream 带缓冲区的字节流,套接在字节流上


8.BufferWriter和BufferReader 带缓冲区的字符流,套接在字符流上

BufferWriter:有个很好用的方法,newLine()  重新另起一行

BufferReader:有个很好用的方法,raadLine()  读取一行数据


9.OutputStreamWriter和InputStreamReader  字符转换流,套接在字节流上,转换成字符流


10.OutputStreamWriter o = new OutputStreamWriter("d:/",true);这里的true代表是否在文件末尾追加数据,不设置则默认覆盖源文件


11.ByteArrayOutputStream out = new ByteArrayOutputStream();不需要设置路径,直接在内存开辟一块区域存储ByteArray

读取方法也有些不同,其他流都是连接到源数据上,这里则是连接到流上

[java] view plaincopyprint?


  • ByteArrayIntputStream in = new ByteArrayIntputStream(out.toByteArray())  

12.DataInputStream和DataOutputStream

因为目前为止的流只能读字节或是字符,对于一些Boolean,Long,Double进行读取的话可能造成空间浪费,DataInputStream则可以直接以源数据在内存的字节数进行相关读取,可用方法writeLong()和readLong()


13.printWriter和printStream打印流,只有输出流,没有输入流,不会抛异常,有自动flush() 功能

[java] view plaincopyprint?


  • printStream ps = new printStream(new FileOutputStream("d:/"))  
  •   
  • System,setOut(ps);  

原本System,out连接的是系统的输出诓,现在重新设置后,System,out.print()的内容将写在ps流指定的文件里


例子:FileInputStream

[java] view plaincopyprint?


  • import java.io.*;  
  • public class TestFileInputStream {  
  •   public static void main(String[] args) {  
  •     int b = 0;  
  •     FileInputStream in = null;  
  •     try {  
  •       //将输入流连接到硬盘上的文件  
  •       in = new FileInputStream("c:\\java\\TestFileInputStream.java");  
  •     } catch (FileNotFoundException e) {  
  •       System.out.println("找不到指定文件");   
  •       System.exit(-1);  
  •     }  
  •       
  •     try {  
  •       long num = 0;  
  •       //通过输入流管道用read()方法读取字节流  
  •       while((b=in.read())!=-1){  
  •         System.out.print((char)b);   
  •         num++;  
  •       }  
  •       in.close();   
  •       System.out.println();  
  •       System.out.println("共读取了 "+num+" 个字节");  
  •     } catch (IOException e1) {  
  •       System.out.println("文件读取错误"); System.exit(-1);  
  •     }  
  •   }  
  • }  



0 个回复

您需要登录后才可以回帖 登录 | 加入黑马