Java中常用的输入输出流函数:处理字节和字符流数据的函数。
Java中的输入/输出流,是Java中非常常见的一种数据存取方式,又叫做IO操作。也就是读写数据(包括文件等)的功能库。Java的IO主要分为两大类,一类是面向字节的输入输出流,另一种是面向字符的输入输出流。
在Java中,对于数据存储的方式,有两种存储方式,一种是二进制存储方式,另一种是文本存储方式。面向字节的输入输出流主要用于二进制存储方式,面向字符的输入输出流主要用于文本方式。
本文将会介绍Java中常用的输入输出流函数,包括处理字节和字符流数据的函数。先介绍常用的面向字节的流函数。
1. FileInputStream
FileInputStream类是用于读取文件数据的,该类继承了InputStream抽象类。该类的构造方法如下:
public FileInputStream(File file) throws FileNotFoundException public FileInputStream(String filename) throws FileNotFoundException
其中File参数或filename参数用来关联一个指定文件。
FileInputStream常用的方法如下:
- read():读取一个字节,并返回读取的字节数据,读到文件末尾返回-1。
- read(byte[] b):从文件中读取b.length个字节,返回读取到的字节数组,读到文件末尾返回-1。
- read(byte[] b, int off, int len):从文件中读取len个字节到字节数组b中,在字节数组中的偏移量为off,返回读取到的字节数,读到文件末尾返回-1。
- skip(long n):跳过n个字节的数据。
- available():返回剩余可读的字节数。
- close():关闭文件输入流,并释放资源。
2. FileOutputStream
FileOutputStream类是用于写入文件数据的,也是继承了OutputStream抽象类。该类的构造方法如下:
public FileOutputStream(File file, boolean append) throws FileNotFoundException public FileOutputStream(File file) throws FileNotFoundException public FileOutputStream(String name, boolean append) throws FileNotFoundException public FileOutputStream(String name) throws FileNotFoundException
其中File参数或name参数是用来关联一个指定文件。append是可选参数,用来控制文件末尾是否追加输入数据。
FileOutputStream常用方法如下:
- write(int b):写入一个字节到文件中。
- write(byte[] b):将字节数组的内容写入文件中。
- write(byte[] b, int off, int len):将字节数组中从off偏移量开始的len个字节写入文件中。
- flush():刷新输出流数据的缓冲区。
- close():关闭输出流,并释放资源。
3. ByteArrayInputStream
ByteArrayInputStream类是从内存中的byte数组中读取数据的流。该类的构造方法如下:
public ByteArrayInputStream(byte[] buf) public ByteArrayInputStream(byte[] buf, int offset, int length)
其中buf参数是需要读取的内存数组。
ByteArrayInputStream常用方法如下:
- read():读取一个字节,并返回读取的字节数据,读到文件末尾返回-1。
- read(byte[] b):从文件中读取b.length个字节,返回读取到的字节数组,读到文件末尾返回-1。
- read(byte[] b, int off, int len):从文件中读取len个字节到字节数组b中,在字节数组中的偏移量为off,返回读取到的字节数,读到文件末尾返回-1。
- available():返回剩余可读的字节数。
- close():关闭流,并释放资源。
4. ByteArrayOutputStream
ByteArrayOutputStream类是向内存中的byte数组中写入数据的流。其构造方法如下:
public ByteArrayOutputStream() public ByteArrayOutputStream(int size)
其中size参数是指Byte Array Output Stream的最大容量。
ByteArrayOutputStream常用方法如下:
- write(int b):写入一个字节到文件中。
- write(byte[] b):将字节数组的内容写入文件中。
- write(byte[] b, int off, int len):将字节数组中从off偏移量开始的len个字节写入文件中。
- flush():刷新输出流数据的缓冲区。
- toByteArray():返回ByteArrayOutputStream所写入的字节数据。
- toString(String charsetName):根据字符集编码将写入的字节数据转为字符串。
- close():关闭输出流,并释放资源。
接下来介绍面向字符的流函数。
1. FileReader
FileReader类是读取文本文件数据的流。该类的构造方法如下:
public FileReader(String fileName) throws FileNotFoundException public FileReader(File file) throws FileNotFoundException
其中file参数或filename参数是用来关联一个指定文件。
FileReader常用方法如下:
- read():读取一个字符,并返回读取的字符数据,读到文件末尾返回-1。
- read(char[] buf):从文件中读取buf.length个字符,返回读取到的字符数组,读到文件末尾返回-1。
- read(char[] buf, int off, int len):从文件中读取len个字符到字符数组buf中,在字符数组中的偏移量为off,返回读取到的字符数,读到文件末尾返回-1。
- skip(long n):跳过n个字符的数据。
- ready():是否可以读取。
- close():关闭文件输入流,并释放资源。
2. FileWriter
FileWriter类是向文本文件中写入数据的流。该类的构造方法如下:
public FileWriter(String fileName, boolean append) throws IOException public FileWriter(String fileName) throws IOException public FileWriter(File file, boolean append) throws IOException public FileWriter(File file) throws IOException
其中file参数或filename参数是用来关联一个指定文件,append是可选参数,用来控制文件末尾是否追加输入数据。
FileWriter常用方法如下:
- write(char[] cbuf):将字符数组的内容写入文件中。
- write(char[] cbuf, int off, int len):将字符数组中从off偏移量开始的len个字符写入文件中。
- write(int c):写入单个字符到文件中。
- write(String str):将字符串的内容写入文件中。
- write(String str, int off, int len):将字符串中从off偏移量开始的len个字符写入文件中。
- flush():刷新输出流数据的缓冲区。
- close():关闭输出流,并释放资源。
3. BufferedReader
BufferedReader类是用来包装输入流,以提高读取数据的效率。该类的构造函数如下:
public BufferedReader(Reader in) public BufferedReader(Reader in, int size)
其中,in为Reader类的对象,用来读取文件数据。size是设置缓冲区的大小。
BufferedReader常用方法如下:
- read():读取一个字符,并返回读取的字符数据,读到文件末尾返回-1。
- read(char[] cbuf):从文件中读取cbuf.length个字符,返回读取到的字符数组,读到文件末尾返回-1。
- read(char[] cbuf, int off, int len):从文件中读取len个字符到字符数组cbuf中,在字符数组中的偏移量为off,返回读取到的字符数,读到文件末尾返回-1。
- readLine():读取一行字符串数据。
- skip(long n):跳过n个字符的数据。
- ready():是否可以读取。
- close():关闭流,并释放资源。
4. PrintWriter
PrintWriter类是用来将数据写入文件的,而且可以很方便地输出各种类型的数据。该类的构造函数如下:
`java
public PrintWriter(File file) throws FileNotFoundException
public PrintWriter(File file, String csn) throws FileNotFoundException,
