1.InputStream
InputStream是一个抽象类,是所有字节输入流类的基类,完成字节从流中读出。所有的子类必须实现一个一个方法,即read()方法,也以为着所有的字节输入类都可以实现单字节的输入。
public abstract int read( ) throws IOException
从当前输入流中读取数据的下一个字节。返回的字节值是在 0 到 255 范围内的一个 int数。如果已读到流的末尾 , 没有再可读的字节时 , 则返回 -1。该方法将一直阻塞 , 直到有输入数据、检测到了数据流尾或抛出异常。如果遇到输入流的结尾, 则返回 -1。如果发生某个I/O 错误 , 则抛出 IOException 异常。
public int read(byte[ ] b) throws IOException
从输入流中读取若干个字节 , 把它们保存到参数 b 指定的字节数组中。返回的整数表示读取的字节数。如果遇到输入流的结尾, 则返回 -1。如果发生某个 I/O 错误 , 则抛出IOException 异常。
public int read(byte[ ] b,int off,int len) throws IOException
从输入流中读取若干个字节 , 把它们保存到参数 b 指定的字节数组中。参数 off 指定在字节数组中开始保存数据的起始下标, 参数 len 指定读取的字节数目。返回的整数表示实际读取的字节数。如果遇到输入的结尾, 则返回 -1。如果发生某个 I/O 错误 , 则抛出IOException 异常。
public void close( ) throws IOException
关闭当前输入流 , 并释放与它相关的系统资源。 InputStream 的 close() 方法不做任何事。如果发生某个I/O 错误 , 则抛出 IOException 异常。
public int available( ) throws IOException
返回可以从输入流中读取的字节数目。如果发生某个 I/O 错误 , 则抛出 IOException异常。
2.OutputStream
一个抽象类 , 是所有字节输出流类的基类 , 完成将字节写入到流中。它的派生类必须实现输出的下一个字节的办法, 即 write() 方法 , 也就意味着所有的字节输出流类都能完成单字节的输入。
重要方法:
public abstract void write(int b) throws IOException
将指定字节写入当前输入流。 OutputStream 的子类必须提供此方法的一个实现。如果发生某个I/O 错误 , 则抛出 IOException 异常。
public void write(byte[ ] b) throws IOException
把参数 b 指定的字节数组中的所有字节写到输出流。如果发生某个 I/O 错误 , 则抛出IOException 异常。
public void write(byte[ ] b,int off,int len) throws IOException
把参数 b 指定的字节数组中的若干字节写到输出流 , 参数 off 指定字节数组的起始下标 ,从这个位置开始输出由参数 len 指定数目的字节。如果发生某个 I/O 错误 , 则抛出 IOException 异常。
public void flush( ) throws IOException
刷新当前输出流 , 将任何缓冲输出的字节输出到此流中。 OutputStream 的 flush() 方法不做任何事。它的一些带有缓冲区的子类覆盖了flush() 方法。通过带缓冲区的输出流写数据时, 数据先保存在缓冲区中 , 积累到一定程度才会真正写到输出流中。缓冲区通常用字节数组实现, 实际上是指一块内存空间。 flush() 方法强制把缓冲区内的数据写到输出流中。如果发生某个I/O 错误 , 则抛出 IOException 异常。
public void close( ) throws IOException
关闭当前输出流 , 且释放与它相关的任一系统资源。 OutputStream 的 close() 方法不做任何事。如果发生某个I/O 错误 , 则抛出 IOException 异常。
3.FileInputStream
InputStream 的派生类 , 完成从文件中读取字节数据。其基本步骤是:
* 建立文件输入流;
* 读入字节数据;
* 关闭。
重要方法:
public FileinputStream(String name) throws FileNotFoundException
创建一个输入文件流 , 从 name 指定名称的文件读取数据。 name 中包含了文件路径信息。如果找不到指定文件, 则抛出 FileNotFoundException 异常。
public FileinputStream(File file) throws FileNotFoundException
创建一个输入文件流 , 从指定的 File 对象读取数据。
import java.io.File;
import java.io.FileInputStream;
public class FileInputStreamTest {
public static void main(String[] args) {
String s="";
int i;
try{
//建立起文件输入流 , 注意 \\ 为对 \ 的转义
FileInputStream in=new FileInputStream("c:\\demo.txt");
//利用循环依次读取文件中的所有字节
while((i=in.read())!=-1){
//强制将字节转换成字符
s=s+(char)i;
}
}catch(Exception e){
s="文件未找到 ";
}
System.out.println(s);
}
}
如果文件很大 , 为了提高读文件的效率 , 可以利用 read(byte[ ] buff) 方法 , 它能减少物理读文件的次数。