第十章 Java语言的输入输出与文件处理

来源:互联网 发布:2017网络效应的答案 编辑:程序博客网 时间:2024/05/21 03:10

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();的说明:将缓冲区的数据写到外设上,强制清空缓冲区并执行外设写操作.