write() 有3个 将数据写入到硬盘中
write(byte[] b)将b.length个字节从指定的byte数组写入此输出流
public void' write(byte[] b):将b.length字节从指定的字节数组写入此输出流
如果写的第一个字节是正数(0-127),那么显示的时候会查询ASCII表
如果写的第一个字节是负数,那第一个字节会和第二个字节组成一个中文显示,查询系统默认码表(GBK)
write(byte[] b,int off,int len ) 将指定的字节数组写入len个字节,从偏移量off开始输出到此的输出流
public void write(byte [] b,int off,int len):把字节数组的一部分写入到文件中
int off:数组的开始索引
int len:写几个字节
指定的字节数组写入len字节,从偏移量off开始输出到此输出流
write(int b)将指定的字节输出流 写一个字节
/*
写入字符方法:可以使用String类中的方法把字符串,转换为字节数组
byte[] getByte() 把字符串转换为字节数组
*/
byte[] byte2="你好".getBytes();
System.out.println(Arrays.toString(byte2));//[-28, -67, -96, -27, -91, -67] 编码格式UTF-8里边3个字节是一个中文,JDK中2个字节是一个中文
fos.write(byte2);
详细代码:
package demo28字节输出流写多个字节;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.lang.reflect.Array;
import java.util.Arrays;
public class DenoOutputStream {
public static void main(String[] args) throws IOException {
//1.创建一个FileOutputStream对象,构造方法中传递写入数据的目的地
FileOutputStream fos=new FileOutputStream(new File("E:\\多线程\\b.txt"));
//2.调用FileOutputStream对象中的write方法把数据写入到文件中
//在文件中写入100,需要写3个字节
fos.write(49);
fos.write(48);
fos.write(48);
/*
public void' write(byte[] b):将b.length字节从指定的字节数组写入此输出流
如果写的第一个字节是正数(0-127),那么显示的时候会查询ASCII表
如果写的第一个字节是负数,那第一个字节会和第二个字节组成一个中文显示,查询系统默认码表(GBK)
*/
byte [] bytes={65,66,67,68,69};//ABCDE
byte [] bytess={-65,-66,-67,68,69};
//fos.write(bytess);//烤紻E
fos.write(bytes);//ABCDE
/*
public void write(byte [] b,int off,int len):把字节数组的一部分写入到文件中
int off:数组的开始索引
int len:写几个字节
指定的字节数组写入len字节,从偏移量off开始输出到此输出流
*/
fos.write(bytes,1,2);//把数组的一部分,BC写入
/*
写入字符方法:可以使用String类中的方法把字符串,转换为字节数组
byte[] getByte() 把字符串转换为字节数组
*/
byte[] byte2="你好".getBytes();
System.out.println(Arrays.toString(byte2));//[-28, -67, -96, -27, -91, -67] 编码格式UTF-8里边3个字节是一个中文,JDK中2个字节是一个中文
fos.write(byte2);
//释放资源
fos.close();
}
}
结果:创建b.txt,写入数据
刚开始时
运行代码后: