一.FileOutputStream类写出数据的3种方式:
-
上述图片的第一个write方法用于一次只写一个字节数据
-
上述图片的第二个write方法用于一次写出多个字节数据,其中需要把要写出的数据先放到一个byte类型的数组中,再把整个byte数组中的数据写到文件中->顺序是把byte数组里的元素依次写入指定文件中
-
上述图片的第三个write方法是只把b数组里的一部分数据写到指定文件中->第一个参数byte[] b就是装着要输出的数据的数组;第二个参数int off是起始索引;第三个参数int len表示要截取的个数->比如起始索引off为0,len为3,表示要写出的数据是从b数组里的0索引开始,一共写3个数据
二.代码演示:
以下所有的演示都操作在当前模块下的a.txt文件。
1.void write(int b)方法:用于一次写一个字节数据
代码:
package com.itheima.mybytestream;
import java.io.FileOutputStream;
import java.io.IOException;
public class ByteStreamDemo3 {public static void main(String[] args) throws IOException {//1.创建字节输出流对象->参数传入要操作的文件的地址FileOutputStream fos = new FileOutputStream("a.txt");
//2.写出数据fos.write(97); //写入文件中的是97在ASCII码中对应的字母afos.write(98);
//3.释放资源fos.close();}
}
运行结果:
2.void write(byte[] b)方法:用于一次写一个字节数组数据
代码:
package com.itheima.mybytestream;
import java.io.FileOutputStream;
import java.io.IOException;
public class ByteStreamDemo3 {public static void main(String[] args) throws IOException {//1.创建字节输出流对象->参数传入要操作的文件的地址FileOutputStream fos = new FileOutputStream("a.txt");
//2.写出数据/*2.1.创建一个byte数组,把要往文件里写的所有数据都放到该数组中 */byte[] bytes = {97, 98, 99, 100, 101};/*2.2.调用write方法*/fos.write(bytes);
//3.释放资源fos.close();}
}
运行结果:
3.void write(byte[] b, int off, int len)方法:用于一次写一个字节数组的部分数据
代码:
package com.itheima.mybytestream;
import java.io.FileOutputStream;
import java.io.IOException;
public class ByteStreamDemo3 {public static void main(String[] args) throws IOException {//1.创建字节输出流对象->参数传入要操作的文件的地址FileOutputStream fos = new FileOutputStream("a.txt");
//2.写出数据/*2.1.创建一个byte数组,把要往文件里写的所有数据都放到该数组中 */byte[] bytes = {97, 98, 99, 100, 101};/*2.2.调用write方法*/fos.write(bytes, 1, 2); //表示在bytes数组中从1索引开始,写2个数据到文件中->1索引是98,写2个数据就是只写98和99
//3.释放资源fos.close();}
}
运行结果: