java中FileOutputStream字节输出流的学习
第一步:
完成FileOutputStream字节输出流的创建
第二步:
调用FileOutputStream字节输出流中的方法,完成写入的操作
*FileOutputStream流中有哪些方法?
| 方法 | 方法描述 |
|---|---|
| void close(); | 关闭此输入流并释放与流有关的任何系统资源 |
| void flush(); | 刷新输出流,使缓存数据被写入到流 |
| void write(byte[] b,int off,int len); | 写b.length字节输出流 |
| void write(byte[] b); | 写b.length字节输出流 |
| void write(int b); | 将指定的byte到输出流 |
其中所有的方法都会抛给调用者IOException编译是异常,调用者在调用的时候记得对编译时的异常进行处理,可以选择throws关键字上抛,也可以选择try-catch语句进行捕捉。
package june.selfStudy.IO;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
/**
* FileOutputStream是字节输出流,目的是将程序中的内容往磁盘上输出
* 输出流在使用完之后,必须清空管道即调用实现的flushable接口中的flush方法来实现对管道的强行刷新。
*/
public class FileOutputStreamTest02 {
public static void main(String[] args){
FileOutputStream fos = null;
try {
//创建输出流对象,调用FileOutputStream当中的构造方法
fos = new FileOutputStream("tempfile04",true);
//查看API文档,看FileOutputStream输出流中都有什么写入的方法
byte[] bytes = {97,98,99,100,101,102};
//将指定数组的长度进行写入
//第一次写入
fos.write(bytes,0,2);//ab
//第二次写入
fos.write("我在学习".getBytes());//abab我在学习
//输出流使用完之后必须强行将流管道刷新
fos.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally{
//关闭流资源
//关闭流之前先判断流是否为空,如果流对象的引用为空,那么也就没有必要关闭了
if(fos!=null){
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
第四步:
输出流使用完之后一定要养成刷新的习惯
调用flush方法强行对管道进行刷新
第五步:
当流使用完之后在finally语句中完成流的关闭