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

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.xdnf.cn/news/16911.html

相关文章:

  • 复现YOLOV5+训练指定数据集
  • 关于Web前端安全防御之安全头配置
  • 最新Android Studio汉化教程--兼容插件包
  • Java Stream API 编程实战
  • MySQL 事务原理 + ACID笔记
  • 【C语言】结构体详解
  • 无人机集群协同三维路径规划,采用冠豪猪优化器(Crested Porcupine Optimizer, CPO)实现,Matlab代码
  • Jetpack Compose for XR:构建下一代空间UI的完整指南
  • C++引用:高效安全的别名机制详解
  • 途游Android面试题及参考答案
  • pytorch 安装
  • 机器翻译的分类:规则式、统计式、神经式MT的核心区别
  • 计算用户日活:从数据设计到可视化的全流程(高频场景题)
  • 深入掌握 ExcelJS:Node.js 中强大的 Excel 操作库
  • RAG 知识库实战指南:基于 Spring AI 构建 AI 知识问答应用
  • GaussDB case when的用法
  • 在win上安装最新的X-anylabeling以及sam2来帮助进行全自动追踪标注
  • 多模态后训练反常识:长思维链SFT和RL的协同困境
  • Git 常用命令指南:从入门到高效开发
  • 【Qt】QObject::startTimer: Timers cannot be started from another thread
  • 考研复习-计算机组成原理-第二章-数据的表示和运算
  • Kazam产生.movie.mux后恢复视频为.mp4
  • 第三章-提示词-高级:开启智能交互新境界(13/36)
  • Steam饥荒联机版多人服务器搭建全解析 -- 阿里云Linux系统构建云服务器
  • MPLS LSP
  • Mysql深入学习:慢sql执行
  • C语言基础03——数组——习题
  • 时序论文44 | TwinsFormer:通过两个交互组件重构时间序列内在依赖关系
  • 14. 最长公共前缀
  • 8-verilog-串口接收与发送模块