Java学习day10--字节流和字符流
字节流和字符流
IO概述_IO流概述及分类:
1).字节流:以字节为单位来读写文件。可以操作任何的文件;【文件复制、上传】
A).输出流:OutputStream(抽象类)
|--FileOutputStream(子类)
B).输入流:InputStream(抽象类)
|--FileInputStream(子类--今天学)
2).字符流:以字符为单位来读写文件。只能操作纯文本文件;
A).输出流:Writer(抽象类)
|--OutputStreamWriter(转换流--明天学)
|--FileWriter(子类--今天学)
B).输入流:Reader(抽象类)
|--InputStreamReader(转换流--明天学)
|--FileReader(子类--今天学)
FileOutputStream,字节的文件输出流
- 构造方法
1).FileOutputStream(String name)
创建文件输出流以指定的名称写入文件。
2).FileOutputStream(String name, boolean append)
创建文件输出流以指定的名称写入文件,追加。
3).FileOutputStream(File file)
创建文件输出流以写入由指定的 File对象表示的文件。
4).FileOutputStream(File file, boolean append)
创建文件输出流以写入由指定的 File对象表示的文件,追加。 - 输出方法
1).write(int b)
:输出一个字节;
2).write(byte[] byteArray)
:输出一个byte[]数组;
3).write(byte[] byteArray,int off,int len)
:输出一个字节数组的一部分;
byteArray:要输出的数组
off : 起始索引位置
len : 输出的数量
FileInputStream,字节的文件输入流
- 构造方法
1).FileInputStream(String path)
:
2).FileInputStream(File path)
: - 读取方法
1).int read()
:读取一个字节;【效率低】
2).int read(byte[] byteArray)
:读取一个字节数组;【快】
3)int read(byte[] byteArray, int off, int len)
:读取一个字节数组的一部分
Writer类及其子类,字符的输出方法
-
Writer类的输出方法
1).write(int c)
:输出一个字符;
2).write(char[] chArray)
:输出一个字符数组;
3).write(char[] chArray,int off,int len)
:输出字符数组的一部分;
4).write(String str)
:输出一个字符串;
5).write(String str,int off,int len)
:输出字符串的一部分; -
Writer的子类FileWriter的构造方法
1).FileWriter(String fileName)
构造一个给定文件名的FileWriter对象。
2).FileWriter(String fileName, boolean append)
构造一个FileWriter对象,给出一个带有布尔值的文件名,表示是否附加写入的数据。
3).FileWriter(File file)
给一个File对象构造一个FileWriter对象。
4).FileWriter(File file, boolean append)
给一个File对象构造一个FileWriter对象。
Reader类及其子类,字符的输入方法
- Reader类的输入方法
1)public int read()
: 从输入流读取一个字符。
2)public int read(char[] cbuf)
: 从输入流中读取一些字符,并将它们存储到字符数组 cbuf中 。 - FileReader的构造方法
1)FileReader(File file)
: 创建一个新的 FileReader ,给定要读取的File对象。
2)FileReader(String fileName)
: 创建一个新的 FileReader ,给定要读取的文件的名称。