12章(一)Java流与文件操作

来源:互联网 发布:windows 10 iplaysoft 编辑:程序博客网 时间:2024/05/16 15:52
 

              12章(一)Java流与文件操作

一、数据流的基本概念

数据源(Data Sourcc):是指那些能够提供数据的地方,包括键盘、磁盘文件、网络接口等。

数据宿(Data Sink):指能够接收数据的地方,可以是磁盘文件、网络接口以及显示器、打印机等外部设备。(数据宿也可认为是数据传输的目的地)

为提高数据的传输效率,通常使用缓冲流(Buffered Stream)缓冲流提高了内存与外部设备的数据传输效率。

1、数据流可以分为输入/输出流,即输入流只能从中读取数据,而不能向其写出数据;输出流则只能向其写出数据,而不能从中读取数据。

2、根据数据流所关联的是数据源还是其他数据流,可分为节点流(Node Stream)和处理流(Processing Stream)。节点流可以从/向一个特定的地方读/写数据;【例,FileReader fr=new FileReader(“demo.txt”);】处理流是对一个已存在的流的连接和封装,通过所封装的流的功能调用实现增强的数据读/写功能,处理流并不直接连接到数据源。【BufferedReader br=new BufferedReader(new FileReader(“demo.txt”));】

3、按传输数据的“颗粒大小”划分,可分为字符流(Character Stream)和字节流(Byte Stream)。字节流以字节为单位进行数据传输,每次传送一个或多个字节;字符流以字符为单位进行数据传输,每次传送一个或多个字符;(字符流使用了字节流读到一个或多个字节(中文对应的字节数是两个,在UTF-8码表中是3个字节)时,先去查指定的编码表,将查到的字符返回);字节流可以处理所有类型的数据,如图片、mp3、avi字符流只能处理字符数据。

二、字符流

  1、 Reader类和Writer类用来专门处理字符流。

(1)Reader类中定义的方法

public int read():读取一个字符,返回的是读到的那个字符。如果读到流的末尾,返回-1。

public int read(char[] cbuf):将读到的字符存入指定的数组中,返回的是实际读取的字符数。如果读到流的末尾,返回-1。

public abstract int read(char[] cbuf,int off,int len):将读到的字符存入数组的指定位置(off),每次最多读len个字符,返回实际读取的字符数。如果读到流的末尾,返回-1。

close():读取字符其实用的是window系统的功能,使用完毕后,进行资源的释放。

(2)Writer

Java.io.Writer与java.io.Reader类对应,是所有字符输出流类型的共同父类,也是一个抽象类,其中声明了用于写字符流的有关方法。

Writer类中定义的主要方法

public void write(int c):将一个字符写入到流中。

public void write(char[]):将数组中的字符依次写出。

public abstract void write(char[] bcbuf,int off,int len):将数组中下标off开始的len个字符写出。

public void write(String):将一个字符串写入到流中。

public abstract void flush():刷新流,将流中的数据刷新到目的地中,流还存在。

public abstreact void close():关闭资源,关闭前会先调用flush,刷新流中的数据去目的地,然后流关闭。

2、FileWriter

该类没有特有的方法。只有自己的构造函数。

该类特点:用于处理文本文件;该类中有默认的编码表,该类中有临时缓冲。

构造函数:public FileWriter(String filename);//调用系统资源,在指定位置,创建一个文件。(注意:如果该文件已存在,将会被覆盖。)public FileWriter(String filename,boolean append);//当传入的boolean类型的参数值为true时,会在指定文件末尾处进行数据的续写。

3、FileReader的使用

用于读取文本文件的流对象。

构造函数:在读取流对象初始化的时候,必须要指定一个被读取的文件。
public FileReader(String filename);//如果该文件不存在会发生FileNotFoundException

 

构造方法:

public FileReader(File file) throws FileNotFoundException

public FileReader(FileDescriptor fd)

public FileReader(StringFileName)throws FileNotFoundException

public FileWriter(File file)throws IOExeception

public FileWriter(File file,boolean append)throws OException

public FileWriter(FileDescriptor fd)

public FileWriter(String fileName)throws IOException

public FileWriter(String filename,boolean append)throws IOException