What is the stream?
•
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
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++)
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+ “个空格”);
}
}
if(Character.isWhitespace((char)ch))
spaces++;
}
System.out.println(total+ “个字符, ”+spaces+ “个空格”);
}
}
未完,见下一篇!
抽象类java.io.OutputStream 用于表示所有输出字节流