第二个方法用的比较多一点,因为不用再new FIle,比较方便
read()
缺点:
一次读取一个字节,调用一次方法就调用一次系统资源,浪费资源
读取中文会乱码
写完之后记得关闭系统资源
用reda(byte[]buffer)
优化:使用循环改造
唯一缺陷:
会抛出异常
//1 创建一个字节输出流管道与目标文件接通,参数里面的文件会自动创建
FileOutputStream fileOutputStream = new FileOutputStream(new File("D:\\接单\\企业资质与分析系统\\zzgl-all-master\\credential-all-master\\credential\\src\\main\\java\\com\\ruoyi\\heima\\itheima2.txt"));
//'b'也是一个字节
fileOutputStream.write(97);
fileOutputStream.write('b');
//这个会乱码,系统用的utf-8.所以这个磊有3个字节,但是write方法默认只能写一个字节
// fileOutputStream.write('磊');
//一次性写入多个字节
fileOutputStream.close();
byte[] bytes = "我爱你中国".getBytes();
fileOutputStream.write(bytes);
fileOutputStream.write(bytes ,0,15);
每次写得时候都会把
重启程序都会把原来的数据删除掉
这个和文件字符输出流对象的创建方式有关
FileOutputStream fileOutputStream = new FileOutputStream(new File(“D:\接单\企业资质与分析系统\zzgl-all-master\credential-all-master\credential\src\main\java\com\ruoyi\heima\itheima2.txt”,true));
换行
使用这个可以兼容更多平台
”\r\n“
os.write(“\r\n”,getBytes());
最后,记得关闭系统资源
这个很重要
File file = new File("C:\\Users\\yan\\Pictures\\4.jpg");
//复制照片
//1. 创建一个字节输入流管道与源文件接通
InputStream inputStream = new FileInputStream("C:\\Users\\yan\\Pictures\\4.jpg");
//2 创建一个字节输出流与目标文件接通
OutputStream outputStream = new FileOutputStream("C:\\Users\\yan\\Pictures\\4.1.jpg");
//创建一个字节数组,负责转移字节数据
byte buffer[] = new byte[1024];
//从字节输入流中读取字节数据,写到字节输出流中,读多少写出去多少
int len;
while ((len=inputStream.read(buffer))!=-1){
outputStream.write(buffer,0,len);
}
//5 关流
outputStream.close();
inputStream.close();