10.1.1 流的概念
1).输入输出流
缓冲流(buffered stream)
10.1.2 输入输出流类库
处理数据类型分为两种:一是字节流(byte stream),另一是字符流(character stream),字节流又称为二进制字节流(binary byte stream) 或 位流(bits steam).
java.lang.Object->
InputStream\OutputStream\Reader\Writer\File\RandomAccessFile
InputStream->
FileInputStream\PipedInputStream\FilterInputStream\SequenceInputStream\...\StringBufferInputStream
OutputStream->
FileOutputStream\PipedOutputStream\...\FilterOutputStream
Reader->
PipedReader\BufferedReader\FilterReader\InputStreamReader\...\StringReader
Writer->
PipedWriter\BufferedWriter\FilterWriter\OutputStreamWriter\...\StringWriter
->FilterInputStream->
BufferedInputStream\LineNumberInputStream\PushbackInputStream\DataInputStream
->FilterOutputStream->
BufferedOutputStream\DataOutputStream\PrintStream
->BufferedReader->
LineNumberReader
->InputStreamReader->
FileReader
->OutputStreamWriter->
FileWriter
其中InputStream\OutputStream\Reader与Writer是抽象类,用于数据流的输入输出;File是稳健类,用于对磁盘文件与目录的管理;RandomAccessFile是随即访问稳健类,用于实现对磁盘文件的随即读写操作.
10.2 使用InputStream和OutputStream流类
基本的输入输出流
InputStream的常用方法
public int read() 从输入流中的当前位置读入一个字节(8bit),补充8个全0的高位字节合成一个16位的int(0~255),若输入流中的当前位置没有数据则返回-1.
public int read(byte b[]) 从输入流中的当前位置连续读入多个字节保存在数组b[]中,同时返回所读到的字节数.
public int read(byte b[], int off , int len ) 从输入流中的当前位置连续读入len个字节,从数组b[]的第off+1个元素位置处开始存放,同时返回所读到的字节数.
public int available() 返回输入流中可以读取的字节数.
public long skip(long n) 使位置指针从当前位置向后跳过n个字节
public void mark() 在当前位置处做一个记号
public void reset() 将位置指针返回到标记的位置
public void close() 关闭输入流与外设的连接并释放所占用的系统资源.
OutputStream类的常用方法
public void write(int b) 将参数b的低位字节写入到输出流
public void write(byte b[]) 将字节数组b[]中的全部字节按顺序写入到输入流
public void write(byte b[],int off , int len) 将字节数组b[]中第off+1个元素开始的len个数据,顺序写入到输出流
public void flush() 强制清空缓冲区并执行向外设写操作
public void close() 关闭输出流与外设的连接并释放所占用的系统资源.
flush();的说明:将缓冲区的数据写到外设上,强制清空缓冲区并执行外设写操作.