IO流
1、IO流概述
(1)用来处理设备(硬盘,控制台,内存)间的数据。
(2)java中对数据的操作都是通过流的方式。
(3)java用于操作流的类都在io包中。
(4)按照流操作的数据的类型不同:分为字节流和字符流。字符流是为了方便中文的操作而来的。
(5)按照流的流向不同分为:输入流,输出流
2、IO流常用基类:
(1)字节流
输出字节流:OutputStream:字节写入流抽象类
|--->FileOutputStream:
字节写入流
|--->BufferedOutputStream:
字节写入流缓冲区
|--->PrintStream:
打印流
输入字节流:InputStream:字节读取流抽象类
|--->FileInputStream:
字节读取流
|--->BufferedInputStream:
字节读取流缓冲区
(2)字符流
输出字符流:Writer:字符写入流的抽象
|--->FileWriter:
字符写入流
|--->BufferedWriter:
字符写入流缓冲区
|--->OutputStreamWriter:
字符通向字节的转换流(涉及键盘录入时用)
|--->OutputStreamWriter:
打印流,可处理各种类型的数据
输入字符流:Reader: 字符读取流的抽象类
|--->FileReader:
字符读取流
|--->LineNumberReader:
跟踪行号的缓冲字符读取流
|--->BufferedReader:
字符读取流缓冲区
|--->InputStreamReader:
字节通向字符的转换流(涉及键盘录入时用)
(3)IO流常用基类方法摘要:
**字节写入流:OutputStream:
void close() 关闭此输出流并释放与此流有关的所有系统资源。
void flush()刷新此输出流并强制写出所有缓冲的输出字节。
abstract void write(int b) 将指定的字节写入此输出流。
void write(byte[] b) 将 b.length 个字节从指定的 byte 数组写入此输出流。
void write(byte[] b, int off, int len)
将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此输出流。
**字节读取流:InputStream:
void close() 关闭此输入流并释放与该流关联的所有系统资源。
int available() (特有方法!!)
返回此输入流下一个方法调用可以不受阻塞地从此输入流读取(或跳过)的估计字节数。
abstract int read() 从输入流中读取数据的下一个字节。
int read(byte[] b) 从输入流中读取一定数量的字节,并将其存储在缓冲区数组 b 中。
int read(byte[] b, int off, int len) 将输入流中最多 len 个数据字节读入 byte 数组。
long skip(long n) 跳过和丢弃此输入流中数据的 n 个字节。
**字符写入流:Writer:
abstract void close() 关闭此流,但要先刷新它。
abstract void flush() 刷新该流的缓冲。
void write(int c) 写入单个字符。
void write(char[] cbuf) 写入字符数组。
abstract void write(char[] cbuf, int off, int len) 写入字符数组的某一部分。
void write(String str) 写入字符串。
void write(String str, int off, int len) 写入字符串的某一部分。
**字符读取流:Reader:
abstract void close() 关闭该流并释放与之关联的所有资源。
int read() 读取单个字符。
int read(char[] cbuf) 将字符读入数组
abstract int read(char[] cbuf, int off, int len) 将字符读入数组的某一部分。
long skip(long n) 跳过字符。
3、IO流常用字节流基类的子类:
**写入流:
(1)FileOutputStream:
**构造方法:
FileOutputStream(String name)
创建一个向具有指定名称的文件中写入数据的输出文件流。
FileOutputStream(String name, boolean append)
创建一个向具有指定 name 的文件中写入数据的输出文件流。
FileOutputStream(File file)
创建一个向指定 File 对象表示的文件中写入数据的文件输出流。
FileOutputStream(File file, boolean append)
创建一个向指定 File 对象表示的文件中写入数据的文件输出流。
**方法摘要:
public void flush()
void close() 关闭此文件输出流并释放与此流有关的所有系统资源。
void write(int b) 将指定字节写入此文件输出流。
void write(byte[] b, int off, int len)
将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此文件输出流。
void write(int b) 将指定字节写入此文件输出流。
(2)BufferedOutputStream:
**构造方法:
BufferedOutputStream(OutputStream out)
创建一个新的缓冲输出流,以将数据写入指定的底层输出流。
BufferedOutputStream(OutputStream out, int size)
创建一个新的缓冲输出流,以将具有指定缓冲区大小的数据写入指定的底层输出流。
**方法摘要:
void flush() 刷新此缓冲的输出流。
void write(byte[] b, int off, int len)
将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此缓冲的输出流。
void write(int b) 将指定的字节写入此缓冲的输出流。
(3)PrintStream:打印流,可将各种类型的数据原样打印,有自动刷新功能
**构造方法:
PrintStream(String fileName)
创建具有指定文件名称且不带自动行刷新的新打印流。
PrintStream(File file)
创建具有指定文件且不带自动行刷新的新打印流。
PrintStream(OutputStream out)
创建新的打印流。
PrintStream(OutputStream out, boolean autoFlush) (当autoFlush为true时具有自动刷新功能)
创建新的打印流。
**方法摘要:
PrintStream append(char c)
将指定字符添加到此输出流。
void close()
关闭流。
void flush()
刷新该流的缓冲。
void print(各种类型的数据:)
打印各种类型的数据
void println(各种类型的数据:):自动换行
打印各种类型的数据
void write(byte[] buf, int off, int len)
将 len 字节从指定的初始偏移量为 off 的 byte 数组写入此流。
void write(int b)
将指定的字节写入此流。
|
|