Java 语言I/O流--1

What is the stream?

其关系如下图所示:http://hi.csdn.net/attachment/201103/28/0_1301312902rf3R.gif
7.字节流是指数据序列的基本构成单位是8位的字节数据,如各类基于二进制数据的文件。
8.java.io包中的类和接口可分为以下几类:
  (1) 高层抽象类用于表示各种不同的流
  (2) 各种特殊类型的流类,如过滤器流、缓冲流、管道流等
  (3) 数据流类用于输入、输出基本数据类型数据或字符串对象
  (4) 用于文件读写的类和接口
  (5) 用于对象序列化的类和接口 
9.字节流可分为输入字节流输出字节流
抽象类java.io.InputStream 用于表示所有输入字节流
import java.io.*;
class CountBytes
{
    public static void main(String[] args) throws IOException
    {
        InputStream in=null;
        try{
            in=new FileInputStream(args[0]); //以指定文件作为数据流
            int total=0;
            while(in.read()!=-1)
                total++;
            System.out.println(total+"bytes");
        } finally{   //即使出现异常也要执行的部分,用于完成程序结束前的必要的处理工作
            if(in!=null)
                try{ in.close(); } //关闭已打开的数据流
                catch(IOException e){ }
        }
    }
}
14.Java.io.Reader类
     该抽象类作为所有输入字符流类的基类,声明用于读取输入字符文本数据的通用方法:
 public int read()
 public abstract int read(char[] buf, int offset, int count)
 public int read(char[] buf)
 public long skip(long count)
 public int available()
 public abstract void close()
<FONT style="FONT-SIZE: 78%" face="""> Reader 类与 InputStream 类有以下不同点:
  (1) Reader最基本的方法是read(char[],int,int),其它方法的功能都依靠此方法的实现;InputStream
       最基本的方法是read(),其它方法的功能都依靠此方法的实现
  (2) Reader的子类必须实现抽象方法close方法
  (3) InputStream类的available方法返回未读入的数据的字节数,而Reader类的available方法只能测试是
         还有可读入的字符数据
15.java.io.Writer类
     该抽象类作为所有输出字符流类的基类,声明用于输出字符文本数据的通用方法:
  public void write(int ch)
  public abstract void write(char[] buf, int offset, int count)
  public void write(char[] buf)
  public void write(String str, int offset, int count)
  public void write(String str)
  public abstract void flush()
  public abstract void close()
import java.io.*;
class CountSpace
{
    public static void main(String[] args) throws IOException
    {
        Reader in;
        in=new InputStreamReader(System.in);
        int ch;
        int totol;
        int spaces=0;
        for(total=0;(ch=in.read())!=-1;total++)
        {
            if(Character.isWhitespace((char)ch))
                spaces++;
        }
        System.out.println(total+ “个字符, ”+spaces+ “个空格”);
    }
}
抽象类java.io.Writer用于表示所有输出字符流
未完,见下一篇!
抽象类java.io.OutputStream 用于表示所有输出字节流

你可能感兴趣的:(Java 语言I/O流--1)