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

字节流写入文件

一、创建输出流对象表示的文件三种方式

方法一:
FileOutputStream fos = new FileOutputStream("fos.txt",true);//最简便

方法二:
FileOutputStream fos = new FileOutputStream(new File("fos.txt"));

方法三;
File f = new File("fos.txt");
FileOutputStream fos = new FileOutputStream(f);

二、字节流写入数据的四种方式

void write (int b)将指定字节写入文件,一次写一个

void write (byte[] b)将b.length字节从字节数组写入此文件输出流,一次写一个字节数组

void write (byte[] b,int off,int len)将len字节从指定off偏移量开始写入文件

byte[] getBytes()使用平台的默认字符集将该Stirng编码为一系列字节,将结果返回新的字节数组中

三、举几个例子

import java.io.*;
public class FileDemo_06 {
    public static void main(String[] args) throws IOException {

        //创建输出流对象表示的文件
        //方法一:
        FileOutputStream fos = new FileOutputStream("fos.txt");//最简便
        //方法二:
        //FileOutputStream fos = new FileOutputStream(new File("fos.txt"));
        //方法三;
        //File f = new File("fos.txt");
        //FileOutputStream fos = new FileOutputStream(f);

        //void write (int b)将指定字节写入文件,一次写一个
        //void write (byte[] b)将b.length字节从字节数组写入此文件输出流,一次写一个字节数组
        //void write (byte[] b,int off,int len)将len字节从指定off偏移量开始写入文件


        //void write (int b)将指定字节写入文件,一次写一个
        fos.write(97);
        fos.write(98);
        fos.write(99);
        fos.write(100);
        fos.write(101);

        byte[] b1 = "\n".getBytes();//读入换行,方便观察呀
        fos.write(b1);

        //void write (byte[] b)将b.length字节从字节数组写入此文件输出流,一次写一个字节数组
        byte[] bys = {97,98,99,100,101,102};
        fos.write(bys);

        byte[] b2 = "\n".getBytes();//读入换行,方便观察呀
        fos.write(b2);

        //byte[] getBytes()使用平台的默认字符集将该Stirng编码为一系列字节,将结果返回新的字节数组中
        byte[] by = "汽车租赁系统4.0\n请输入你的选择:\n".getBytes();
        fos.write(by);

        fos.write(bys,2,3);//cde

        //释放资源,一定要记得
        fos.close();
    }
}

PS:讨论几个小问题

1、写入文件的的数据都是在同一行连续写入,没有换行

解决办法:使用byte[] getByte()方法,然后在你写入的字符串最后面加上\n

2、每次写入文件都会造成复写,即第二次的内容会覆盖前一次的内容,如何追加写入

解决办法:

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

创建输出流对象时,使用上面的构造方法,"true"代表在将字节写入文件的末尾而不是开头

使用追加写入的构造方法,运行两次后的结果


http://www.kler.cn/news/360968.html

相关文章:

  • Java基于SSM微信小程序物流仓库管理系统设计与实现(源码+lw+数据库+讲解等)
  • Linux中安装tesserocr遇到的那些坑
  • go-zero系列-限流(并发控制)及hey压测
  • 【JAVA】第三张_Eclipse下载、安装、汉化
  • ruoyi框架配置多数据源
  • C++11——智能指针
  • 秋招突击——8/6——万得数据面试总结
  • 深度学习 基本函数01
  • Linux-网络命令
  • 基于Multisim三极管B放大系数放大倍数测量电路设计(含仿真和报告)
  • impdp+remap_schema导入后登录报ORA-01017: Invalid Username/password
  • SpringBoot基于微信小程序的上门幼儿照护服务系统(源码+lw+部署文档+讲解等)
  • 中间件之MQ-Kafka
  • [ 钓鱼实战系列-基础篇-5 ] 一篇文章教会你用红队思维设计钓鱼模板(附常见的钓鱼邮件模板)
  • KMP算法c++
  • [论文笔记]HERMES 3 TECHNICAL REPORT
  • Python程序设计 内置模块 随机函数
  • 【C++】踏上C++学习之旅(三):“我“ 与 “引用“ 的浪漫邂逅
  • 基于Python的自然语言处理系列(39):Huggingface中的解码策略
  • 标准/开源版本,长连接无法启动