IO(Input Output)流
Java用于操作流的对象都在IO包中。
流按操作数据分为两种:字节流与字符流。
流按流向分为:输入流,输出流。
IO流常用基类
字节流的抽象基类:
InputStream,OutputStream。记忆方法:根据Input联想System.in.从键盘输入。
也就是从键盘读数据,所以对应字符流的Reader。
根据OUtput联想System.out。从控制台输出。
也就是写入控制台,对应字符流的Writer。
字符流的抽象基类:
Reader,Writer。
注:由这四个类派生出来的子类名称都是以其父类名作为子类名的后缀。
如:imputStream的子类FileInputStream。
如:Reader的子类FileReader。
字符流:
既然IO流是用于操作数据的,
那么数据的最常见体现形式是:文件。
那么先以操作文件为主来演示。
需求:
在硬盘上创建一个文件并写入一些文字数据。
专门用于操作文件的Writer子类对象。FileWriter。后缀名是父类名。前缀名是该流对象的功能。
FileWriter类操作演示:
IO异常的基本处理方式:
FileWriter(String fileName, boolean append)
根据给定的文件名以及指示是否附加写入数据的boolean值来构造FileWriter对象。
数据读取:
Reader类:
public class FileReader extends InputStreamReader
用来读取字符文件的便捷类。此类的构造方法假定默认字符编码和默认字节缓冲区大小适当。
读取方法:
public int read()
返回整数读取的字符,如果已达到末尾,则返回-1;
public int read(char[] cbuf)
读取的字符数,如果已达流的末尾,则返回-1;
练习:
练习:复制文件