FileOutputStream文件字节输出流
【4种构造方法】
<1>FileOutputStream(String filePath);【构造方法参数直接传入文件路径】根据用户指定的路径,创建对应FileOutputStream文件操作输出流对象;如果路径不合法,抛异常FileNotFoundException();
采用的方式是【删除写】!!! 文件内容先清空,再写入数据;<2>FileOutPutStream(File file);【构造方法参数直接传入File类对象】根据用户指定的File类对象,创建对应FileOutputStream文件操作输出流对象;如果路径不合法,抛异常FileNotFoundException();
采用的方式是【删除写】!!! 文件内容先清空,再写入数据;<3>FileOutputStream(String filePath,boolean append);【构造方法参数直接传入路径+是否追加写】根据用户指定的路径,创建对应的FileOutputStream文件操作输出流对象;如果路径不合法,抛异常FileNotFoundException();
append参数是boolean类型,如果传入参数是true表示是【追加写】,在文件末尾写入数据;<4>FileOutputStream(File file, boolean append);【构造方法参数传入File类对象+是否追加写】根据用户指定的File类对象,创建对应FileOutputStream文件操作输出流对象,如果路径不合法抛出异常:FileNotFoundException();
append参数是boolean 类型,如果传入参数是true,表示【追加写】在文件末尾写入数据;
【3种成员方法】
<1>void write(int b);将一个字节数据写入到文件中;
<2>void write(byte[] buf);将一个字节数组写入到文件中;
<3>void write(byte[] buf,int off,int count);写入一个字节数组到文件中,要求从off偏移位置开始,计数count;【确认数组写入数据的范围】
【操作流程】
<1>明确对应文件的路径,可以选择直接给予对应的String类型路径,或者创建对应的File类对象,作为参数;
<2>创建FileOutputStream文件操作输出字节流,打开文件操作管道;
<3>是由FileOutputStream对象写入数据到文件中;
<4>关闭资源;
【注意】
<1>FileOutputStream拥有创建文件的能力,在路径合法,且对应目录有写入权限下可以创建文件
<2>区分删除写和追加写;
class Demo10 {
public static void main(String[] args) throws IOException {
//创建FileOutputStream类对象【构造方法直接传入路径】
//没有传入append,所以默认是【删除写】
//【所谓删除写】就是创建FileOutputStream类对象时写入时会删除文件中原有的所有内容
//但是同一个FileOutputStream类对象多次调用write()方法是是追加写入;
FileOutputStream fileOutputStream = new FileOutputStream("C:\\Users\\123\\Desktop\\file\\file.txt");
//写一个字节数据写入到文件中
fileOutputStream.write(49);
//写一个字节数组数据写入到文件中,【不指定】开始下标与写入数量
String write = "小哈,小金,小花";
//【String格式转换为byte[]数组】使用.getBytes() 方法
byte[] bytes = write.getBytes();
fileOutputStream.write(bytes);
//写一个字节数组数据写入到文件中,【指定】开始下标与写入数量
fileOutputStream.write(bytes,0,25);
//关闭资源
fileOutputStream.close();
//创建file类对象 传入append参数【追加写】
File file = new File("C:\\Users\\123\\Desktop\\file\\file.txt");
//创建FileOutputStream类对象【构造方法传入File类对象】
FileOutputStream fileOutputStream1 = new FileOutputStream(file,true);
//追加写入
fileOutputStream1.write(bytes);
//关闭资源
fileOutputStream1.close();
}
}