上一节,我们学习了文件字节输出流的构造方法,这一节,我们继续学习如何使用输出流写字节以及关闭流。
输出流的目的是提供通往目的地的通道,程序可以通过这个通道将程序中的数据写入到目的地,文件字节流可以调用从父类继承的write方法顺序地写文件。FileOutStream流顺序地向文件写入内容,即只要不关闭流,每次调用write方法就顺序地向文件写入内容,直到流被关闭。
字节输出流的write方法以字节为单位向目的地写数据。
输出流调用该方法向目的地写入单个字节。
输出流调用该方法向目的地写入一个字节数组。
给定字节数组中起始于偏移量off处取len个字节写到目的地。
关闭输出流。
注意:FileOutputStream流顺序地写文件,只要不关闭流,每次调用write方法就顺序地向目的地写入内容,直到流被关闭。
在操作系统把程序所写到输出流上的那些字节保存到磁盘上之前,有时被存放在内存缓冲区中,通过调用close()方法,可以保证操作系统把流缓冲区的内容写到它的目的地,即关闭输出流可以把该流所用的缓冲区的内容冲洗掉,通常冲洗到磁盘文件上。
例如:
importjava.io.*;publicclassMain{publicstaticvoidmain(Stringargs[]){byte[]a=新年快乐.getBytes();byte[]b=HappyNewYear.getBytes();Filefile=newFile(a.txt);//输出的目的地try{OutputStreamout=newFileOutputStream(file);//指向目的地的输出流System.out.println(file.getName()+的大小:+file.length()+字节);out.write(a);//向目的地写数据out.close();out=newFileOutputStream(file,true);//准备向文件尾加内容System.out.println(file.getName()+的大小:+file.length()+字节);out.write(b,0,b.length);System.out.println(file.getName()+的大小:+file.length()+字节);out.close();}catch(IOExceptione){System.out.println(Error+e);}}}
运行结果如下:
a.txt的大小:0字节a.txt的大小:12字节a.txt的大小:26字节