io流-字节流
2023-12-31 04:18:05
1 fileInputStream
1 创建方法
第二个方法用的比较多一点,因为不用再new FIle,比较方便
2 读取fileInputStream
1 文件字节输入流:每次 读取一个字节
read()
缺点:
一次读取一个字节,调用一次方法就调用一次系统资源,浪费资源
读取中文会乱码
写完之后记得关闭系统资源
2 文件字节输入流:每次 读取多个字节
用reda(byte[]buffer)
优化:使用循环改造
3 文件字节输入流:一次性读取全部字节
唯一缺陷:
会抛出异常
2 fileOutputStream
- 文件字节输出流:写字节出去
1. 写入一个字节
//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('磊');
2. 写如多个字节
//一次性写入多个字节
fileOutputStream.close();
byte[] bytes = "我爱你中国".getBytes();
fileOutputStream.write(bytes);
3. 写如指定长度到文件
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());
最后,记得关闭系统资源
3 案例,文件复制
这个很重要
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();
文章来源:https://blog.csdn.net/weixin_51625248/article/details/135242965
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!