FileOutputStream类
FileOutputStream类是一个与FileInputStream相对应的类,它提供了基本的文件写入能力。除了从OutputStream类继承来的方法(可以参考博文:Java IO之输入输出流中的输出流OutputStream)外,FileOutputStrem类还有两个构造方法:
Ø FileOutputStream(String name):使用给定的名称name创建一个FileOutputStream对象;
Ø FileOutputStream(File file):使用File对象创建一个FileOutputStrean对象。
Ø FileOutputStream(String fileName,boolean append):使用给定的名称name创建一个FileOutputStream对象,如果第二个参数为 true,则将字节写入文件末尾处,而不是写入文件开始处。
Ø FileOutputStream(File file, booleanappend):使用File对象创建一个FileOutputStream对象,如果第二个参数为 true,则将字节写入文件末尾处,而不是写入文件开始处。
可以使用write方法把字节写入到输出流中到达源文件,write方法的格式如下:
Ø write(int b):将指定的字节写入此输出流。
Ø write(byte[] b):将 b.length 个字节从指定的 byte 数组写入此输出流。
Ø write(byte[] b, int off,int len):将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此输出流。
FileOutputStream流顺序地写文件,只要不关闭流,每次调用write方法就顺序的向输出流中写入文件,直到流被关闭或出现异常。
实例如下:
要求:通过键盘输入数据,然后通过输入流输入到从C盘根目录下FileOutputStreamDemo.txt文件中
代码如下:
import java.io.File;
import java.io.FileOutputStream;
import java.util.Scanner;
public class FileOutputStreamDemo {
public staticvoidmain(String[] args){
Scanner sc=new Scanner(System.in);
System.out.println("请输入要写的内容:");
String str=sc.nextLine();
byte[] data=str.getBytes();
File file;
try{
file=new File("C:"+File.separator+"FileOutputStreamDemo.txt");
FileOutputStream writefile=new FileOutputStream(file);
writefile.write(data, 0, data.length);
<span style="white-space:pre"> </span> writefile.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
结果如下:
请输入要写的内容:
This is a FileOutputStreanDemo test.
打开C盘中的FileOutputStreamDemo.txt文件,可以看到:
This is a FileOutputStreanDemo test.