当前位置: 首页 > news >正文

IO流-字节流-FileOutputStream

FileOutputStream: 操作本地文件的字节输出流,可以把程序中的数据写到本地文件中。

书写步骤:

①创建字节输出流对象

②写数据

③释放资源

public class ByteStreamDemo01 {public static void main(String[] args) throws IOException {//1.创建对象//写出 输出流 OutputStream//本地文件  FileFileOutputStream fos = new FileOutputStream("a.txt");//2.写出数据fos.write(97);System.out.println("======================");fos.write(57);fos.write(55);//3.释放资源fos.close();}
}

FileOutputStream书写细节:

①创建字节输出流对象

         细节1:参数是字符串表示的路径或者File对象都是可以的

         细节2:如果文件不存在会创建一个新的文件, 但是要保证父级路径是存在的。

         细节3:如果文件已经存在,则会清空文件

②写数据

         细节: write方法的参数是整数,但是实际上写到本地文件中的是整数在ASCI上对应的字符

③释放资源

         细节:每次使用完流之后都要释放资源

FileOutputStream写数据的3种方法:

public class ByteStreamDemo02 {public static void main(String[] args) throws IOException {/*void write(int b)                      一次写一个字节数据void write(byte[] b)                    一次写一个字节数组数据void write(byte[] b ,int off, int len)  一次写一个字节数组的部分数据*/FileOutputStream fos = new FileOutputStream("a.txt");//fos.write(97);//fos.write(98);byte[] bytes={97,98,99,100,101};// fos.write(bytes);fos.write(bytes,1,2);fos.close();}
}

换行和续写:

换行:再次写出一个换行符就可以了

 Windows:   \r\n

 Linux:         \n

Mac:           \r

在Windows操作系统当中,Java对回车换行进行了优化,虽然完整的是\r\n,但是写其中一个\r或者\n也可以实现,因为Java在底层会补全。

public class ByteStreamDemo03 {public static void main(String[] args) throws IOException {//创建对象FileOutputStream fos = new FileOutputStream("a.txt");//写出数据String str1 = "haoxiangnimenya";byte[] bytes1 = str1.getBytes();//字符串变字节数组fos.write(bytes1);//再2写一个换行符就好了String wrap = "\r\n";byte[] bytes2 =wrap.getBytes();//字符串变字节数组fos.write(bytes2);String str2 = "aiaiai";byte[] bytes3 = str2.getBytes();//字符串变字节数组fos.write(bytes3);//释放资源fos.close();}
}

续写:打开续写开关即可

开关位置:创建对象的第二个参数

FileOutputStream fos = new FileOutputStream("a.txt",true);

默认是false:表示关闭续写,此时创建对象会清空文件

手动传递true:表示打开续写,此时创建对象不会清空

http://www.dtcms.com/a/313477.html

相关文章:

  • day50预训练模型 CBAM注意力
  • Effective C++ 条款20:宁以pass-by-reference-to-const替换pass-by-value
  • LeetCode 2122.还原原数组
  • centos7安装桌面客户软件并远程连接
  • 学习笔记《区块链技术与应用》第五天 分叉
  • Matlab 高斯牛顿法拟合曲线
  • 力扣-200.岛屿数量
  • 01数据结构-二叉搜索树
  • PAT 甲级题目讲解:1012《The Best Rank》
  • 【硬件-笔试面试题】硬件/电子工程师,笔试面试题-55,(知识点:STM32,外设及其特点)
  • 力扣-124.二叉树中的最大路径和
  • LLM调研
  • 计算用户日活:从数据设计到可视化的全流程(高频场景题)
  • 秋招笔记-8.3
  • AUTOSAR进阶图解==>AUTOSAR_RS_SystemTemplate
  • 元宇宙三维化会给游戏行业带来哪些改变?
  • 什么是列存储(Columnar Storage)?深度解析其原理与应用场景
  • 常见的深度学习模块/操作中的维度约定(系统性总结)
  • io_cancel系统调用及示例
  • e2studio开发RA4M2(6)----GPIO外部中断(IRQ)配置
  • 算法题(181):最大直方矩形面积
  • datasets库 的map方法num_proc=16并行踩坑
  • Java 中的 final 关键字有哪些用法?
  • C++ 虚函数相关问题 **
  • 基于云模型的模糊综合风险评估Matlab代码
  • 网关与路由器的区别
  • access系统调用及示例
  • 延迟任务方案-DelayQueue
  • SpringBoot 2.x 升 3.x 避坑指南:企业级项目的实战问题与解决方案
  • Celery-分布式任务队列