首页>java频道>java教程>正文
关于Java输入数据流详解

www.zige365.com 2010-6-7 12:01:33 点击:发送给好友 和学友门交流一下 收藏到我的会员中心

Java输入数据流

在Java中,我们把能够读取一个字节序列的对象称作一个Java输入数据流;而我们把够写一个字节序列称作一个输出流。它们分别由抽象类 InputStream和OutputStream类表示。因为面向字节的流不方便用来处理存储为Unicode(每个字符使用两个字节)的信息。所以Java 引入了用来处理Unicode字符的类层次,这些类派生自抽象类Reader和Writer,它们用于读写双字节的Unicode字符,而不是单字节字符。

Java.io包简介

JDK标准帮助文档是这样解释Java.io包的,通过数据流、序列和文件系统为系统提供输入输出。

InputStream类和OutputStream类

InputStream类是所有输入数据流的父类,它是一个抽象类,定义了所有Java输入数据流都具有的共通特性。
java.io.InputStream的方法如下: 

  1. public abstract read()throws IOException 

读取一个字节并返回该字节,如果到输入源的末则返回-1。一个具体的Java输入数据流需要重载此方法,以提供 有用的功能。例如:在FileInputStream类中,该方法从一个文件读取一个字节。

  1. public int read(byte[] b)throws IOException  

把数据读入到一个字节数据中,并返回实际读取的字节数目。如果遇到流末 则返回-1,该方法最多读取b.length个字节。

  1. public abstract int read(byte[] b,int off,int len)throws IOException  

把数据读入到一个字节数组中并返回实际读取的字节数目。如果遇到流的末尾则的返回-1。 其中参数off表示第一个字节在b中的位置,len表示读取的最大字节数。

  1. public long skip(long n)throws IOException  

略过N个字节不读取,会返回实际略过的字节数目。因为数据流中剩下的数据可能不到N 个字节那么多,所以此时返回值会小于N。

  1. public int available()throws IOException  

read方法(包括后面要讲的OutputStream类的Write方法)都能够阴塞一个线程,直到字节被 实际读取或写入。这意味着如果一个流不能立即被读或被写

  1. /*   
  2. * Created on 2005-3-10   
  3. * To change the template for this generated file go to   
  4. * Window>Preferences>Java>Code Generation>Code and Comments   
  5. */   
  6. package mytestfiles;   
  7. import java.io.BufferedReader;   
  8. import java.io.File;   
  9. import java.io.FileReader;   
  10. import java.io.FileWriter;   
  11. import java.io.IOException;   
  12. import java.io.PrintWriter;   
  13.  
  14. /**   
  15. * @author zhangqinglin   
  16. * To change the template for this generated type comment go to   
  17. * Window>Preferences>Java>Code Generation>Code and Comments   
  18. */   
  19. public class Files   
  20. {   
  21. public static void main(String[] args) throws IOException   
  22. {   
  23. Files f = new Files();   
  24. // System.out.println(f.readFile("f:\\LinkFile.java"));   
  25. // f.readAllFile("f:\\","LinkFile.java");   
  26. // f.readLineFile("f:\\","LinkFile.java");   

    本新闻共4页,当前在第1页  1  2  3  4  

我要投稿 新闻来源: 编辑: 作者:
相关新闻
关于Java核心API需要掌握的十一条准则
浅谈Java参数传递机制分析:值与引用
关于使用Java代码控制CPU占用率
关于使用Java多线程实现任务分发
Java双括弧技巧:不规范的语法