Java中字节流类的使用
一、FileOutputSream类
功能:将内存中的数据写入硬盘的类。
使用步骤:
1、创建一个FileOutputStream对象,构造方法中传入写入数据的目的地。
2、调用对象的write()方法写入数据。
3、调用对象的close()方法释放资源(流的使用会占用一些内存资源,因此流使用完成后需要释放)。
注意事项:
1、如果FileOutputStream对象指向的数据写入目的地已经存在,则在写入数据时会将原有内容覆盖。
2、创建FileOutputStream对象存在FileNotFoundException异常,因此需要throws或者try catch。
1.1、常用构造方法
1.1.1、文件不能续写的构造方法,即每次都会将原有文件覆盖,然后重新写入。
FileOutputStream(File file):创建一个指定File对象表示的文件中写入数据的文件输出流对象。
FileOutputStream(String name):创建一个具有指定名称的文件中写入数据的文件输出流对象。
参数:写入数据的目的地。
String name:目的地是一个路径。
File file:目的地是一个File对象。
构造方法的作用:创建一个FileOutputStream对象,然后根据构造方法中传递的文件/文件路径创建一个空文件,最后将FileOutputStream
对象指向该文件。
1.1.2、文件能续写的构造方法,即每次不会将原有文件覆盖,在原有数据的基础上写入数据。
FileOutputStream(File file, boolean append):创建一个指定File对象表示的文件中写入数据的文件输出流对象。
FileOutputStream(String name, boolean append):创建一个具有指定名称的文件中写入数据的文件输出流对象。
参数:
String name:目的地是一个路径。
File file:目的地是一个File对象。
boolean append: 追加写开关。
true:在文件末尾追加写数据,不会覆盖原有的数据。
false:重新写入数据,会覆盖原有数据。
1.2、常用方法
1.2.1、write()
功能:从内存中向硬盘里写入数据。
用法:FileOutputStream对象.write(需要写入的数据)。
write(int b):写入一个字节的数据。
write(byte[] b):用于一次写入多个字节的数据,即将指定的字节数组写入文件。注意:如果写的第一个字节是正数并且在0-127
之间,则显示的时候会查询ASCII表。如果写的第一个字节是负数,那么第一个字节和第二个字节会合并为一个中文字节显示,
查询的编码表为系统默认的GBK编码表,显示中文字符要求两个连续的字节都为负数,否则会出现乱码。
write(byte[] b, int off, int len):用于一次写入多个字节的数据,即将指定字节数组从off位置开始len长度的数据写入指定文件。
实例:fos1.write(100);
注意事项:
1、write()方法存在IOException异常,因此使用时需要throws或者try catch。
2、write()方法是按照字节写入数据,编码遵照使用的的编码表,例如:使用的是UTF-8编码,写入的是整数“90”,在文件中
显示的是“Z”。
3、如果不知道字符用字节表示为多少,可以先写为字符串,然后调用字符串类的getBytes()方法转换为字节数组,最后调用
write()方法写入数据。
4、如果文件中的数据需要换行,则需要使用换行符,在Windows系统中为:\r\n,在linux系统中为:/n,mac系统中为:/r。
1.2.2、close()
功能:释放FileOutputStream对象的资源。
用法:FileOutputStream对象.close()。
实例:fod1.close();
注意事项:close()方法存在IOException异常,因此使用时需要throws或者try catch。
二、FileInputStream类
功能:将硬盘中的数据读取到内存中的类。
使用步骤:
1、创建一个FileInputStream对象,构造方法中传入写入数据的目的地。
2、调用对象的read()方法读取数据。
3、调用对象的close()方法释放资源(流的使用会占用一些内存资源,因此流使用完成后需要释放)。
注意事项:
1、如果FileInputStream对象指向的数据读取目的地必须是存在的,否则会报错。
2、创建FileInputStream对象存在FileNotFoundException异常,因此需要throws或者try catch。
2.1 常用构造方法
FileInputStream(File file):创建一个指定File对象从硬盘中读取数据的文件输入流对象。
FileInputStream(String name):创建一个具有指定路径从硬盘中读取数据的文件输入流对象。
参数:读取数据的目的地。
String name:目的地是一个路径。
File file:目的地是一个File对象。
构造方法的作用:创建一个FileInputStream对象,然后根据构造方法中传递的文件/文件路径找到指定的文件,最后将FileInputStream
对象指向该文件。
2.2 常用方法
2.2.1 read()方法
功能:从FileInputStream对象指定的文件中读取数据。
用法:int len = FileInputStream对象.read();
int len = 对象.read():每次读取一个字节数据的并作为int类型数据返回的方法。
int len = 对象.read(byte[] b):每次读取数据并且缓存到byte数组中的方法,len表示读取到的数据的长度。
注意事项:read()方法存在IOException异常,因此使用时需要throws或者try catch。
1.2.2、close()
功能:释放FileInputStream对象的资源。
用法:FileInputStream对象.close()。
实例:fod1.close();
注意事项:close()方法存在IOException异常,因此使用时需要throws或者try catch。