输出流(写)学习

news2024/9/26 5:21:51

在这里插入图片描述

选择子类:FileOutputStream 文件输出字节流
在这里插入图片描述
看到的是d 说明会查询ASCII表

写入记事本时,一个字母是一个字节

 public static void main(String[] args) throws Exception {
        FileOutputStream fos = new FileOutputStream("e:\\asd.txt");
        byte[] bytes = "请叫GIAO".getBytes();
        fos.write(bytes);
        fos.close();
    }

在这里插入图片描述

1.构造方法

// 构造方法的本质都是先判断要创建的File存不存在,然后在判断要不要追加
// 1.File为参数
   public FileOutputStream(File file) throws FileNotFoundException {
        this(file, false);
    }
// 2.String为参数  方法1和方法2都是默认不追加,直接覆盖
   public FileOutputStream(String name) throws FileNotFoundException {
        this(name != null ? new File(name) : null, false);
    }
// 3.String 和append 2个参数     
public FileOutputStream(String name, boolean append)
        throws FileNotFoundException
    {
        this(name != null ? new File(name) : null, append);
    }
// 4.前三个最终,都是调用第四个构造方法
    public FileOutputStream(File file, boolean append)
        throws FileNotFoundException
    {
        String name = (file != null ? file.getPath() : null);
        @SuppressWarnings("removal")
        SecurityManager security = System.getSecurityManager();
        if (security != null) {
            security.checkWrite(name);
        }
        if (name == null) {
            throw new NullPointerException();
        }
        if (file.isInvalid()) {
            throw new FileNotFoundException("Invalid file path");
        }
        this.fd = new FileDescriptor();
        fd.attach(this);
        this.path = name;

        open(name, append);
        FileCleanable.register(fd);   // open sets the fd, register the cleanup
    }

2.换行输入

在这里插入图片描述
Win10写\n或者\r也可以
在这里插入图片描述

public static void main(String[] args) throws Exception {
    FileOutputStream fos = new FileOutputStream("e:\\asd.txt",true);
    byte[] bytes = "披荆\r\n".getBytes();
    fos.write(bytes);
    fos.close();
}

3.异常处理(try catch处理)

将对数据流的操作用try catch来处理,并且close要写在finally中,并且还y要包try catch
问题:为什么要把close放在finally中
解答:如果把close()放在位置1,如果上面操作数据流出现错误,直接走到catch中,close就被跳过不执行了。

public static void main(String[] args)  {
        FileOutputStream fos  = null;
        try {
            fos = new FileOutputStream("m:\\asd.txt", true);
            byte[] bytes = "披荆\r\n".getBytes();
            fos.write(bytes);
            // 位置1 fos.close();
        }catch (IOException e){
            e.printStackTrace();
        }finally {
            try {
                if((fos != null)){
                    fos.close();
                }
            } catch (IOException ex){
                ex.printStackTrace();
            }

        }

    }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/696061.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

☆Image captioning☆论文show,attend and tell的程序中create_input_files.py代码详解

手把手实现Image captioning,论文show,attend and tell的程序中create_input_files.py代码详解。如果感觉有用,不妨给博主来个一键三连,白天科研,晚上肝文,实属不易~ ~ ](https://imgse.com/i/p9FmMDK) 1. 代码解析(1) assert dataset in {coco, flickr8k, flickr30k…

【计算机网络】数据链路层--MAC媒体接入控制

1.概念 2.静态划分信道 2.1 频分复用 2.2 时分复用 2.3 波分复用 2.2 码分复用 2.3 习题1 2.4 应用举例 2.5 习题2 2.6 习题3 3.小结

服务器设置tomcat开机自启动(cmd命令行语句,tomcat注册到服务里)

1、找到tomcat安装目录,进入bin/文件夹下面,在此打开windows 命令行窗口。 2、输入 service install tomcatXXX 将tomcat注册成为windows服务,其中tomcatXXX为服务名。 3、查看刚刚注册的服务 “我的电脑”-》右键管理 发现刚刚的服务是手…

Stable Diffusion 无损放大图像和缩小图像

Stable Diffusion默认生成的图片尺寸为512512,这种尺寸的分辨率可能无法满足高质量的要求。若想生成大图,存在两种可选的方法,在显卡足够支撑的情况下可以将图像当打到8K。 文章目录 hires.fix高分辨率修复extras附加功能放大功能缩放功能 hi…

VirtualBox 开启硬件虚拟化

最近用VirtualBox开了一台centos7的虚拟机,想用虚拟机搭建一个KVM环境, 结果发现Virtualbox开启虚拟化的选项是灰色的,无法选择, 解决方法:进入virtualbox安装目录,打开cmd,进入命令行模式打开嵌…

使用NVM下载和安装NodeJS教程

NodeJS下载与安装教程 一、下载 NVM二、安装 NVM三、安装 Node四、配置 NVM 和 NodeJS4.1 配置环境变量4.2 配置node_global和node_cache 这里我是用的 NVM 下载,后期管理 Node 版本很方便,推荐这种方式,还有一种方式是直接下载 NodeJS 进行安…

PPT如何跨页让图像对齐?

例如: 第1页和第2页的图片,希望2张图片在ppt中是固定的位置。 选择视图菜单栏,勾选参考线。 页面空白处,鼠标右键点击,显示菜单栏,选择添加水平或垂直参考线。 拖动参考线到想要的位置&#xff0c…

elementUI表格勾选框判断选择相同的内容才能进行后续逻辑处理;否则拦截提示

需求是: 可多选需满足条件:同一个年级、同一个分数; 不满足条件给出提示:请选择同一个年级 、分数的学生 1、先对勾选数据进行赋值 /** 表格复选框勾选 */handleSelectionChange(val) {console.log(val)this.tableSelectArr va…

5.7.1 UDP概述

5.7.1 UDP概述 用户数据报UDP协议是在IP数据报服务之上增加了两个内容 端口的复用和分用差错控制 一、UDP特点 UDP特点TCP特点无连接面向连接不可靠的服务可靠的服务点到点和多点通信点到点的通信首部8字节首部固定部分20字节面向报文面向字节流 UDP是无连接的服务&#x…

想做一个简单功能小程序需要多久

对于小程序开发的新手来说,往往会有这样一个问题:想做一个简单功能的小程序,大概需要多久时间呢?实际上,这个问题的答案取决于许多因素,包括你的开发技能、你计划实现的功能以及你为项目投入的时间等。 首…

建筑企业缺成本票,怎么解决?学会这几招可胜券在握!

建筑企业缺成本票,怎么解决?学会这几招可胜券在握! 《税筹顾问》专注于园区招商、企业税务筹划,合理合规助力企业节税! 建筑行业业务流程的特点是一般建筑工期的周期长,涉及的施工人员构成十分复杂&#x…

Docker安装,常用命令,部署MySQL,Tomcat,nginx,redis

Docker简介 Docker是基于Go语言实现的云开源项目。 Docker的主要目标是“Build,Ship and Run Any App,Anywhere”,也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP(可以是一个WEB应用或数据库应用等等…

Cocos Creator Node 旋转角度实现的几种方法

rotation 需要四元数进行旋转,具体旋转方法本博主直接绕开了,因为没给案例不太了解,知道的欢迎评论 1.在Cocos Creator v3.6中,要使用setRotation方法将节点旋转90度,可以使用以下代码: // 获取节点 var node this.n…

Grafana嵌入iframe,websoket连接报错400或403(nginx代理)

1、custom.ini配置文件修改allowed_origins* 2、 nginx中增加配置,如下:

Effective Modern C++ 笔记

Effective Modern C 本文是Effective Modern C学习笔记,以细碎的知识点记录的形式来记录学习过程。 简介: 1、Effective Modern C目标:学习怎样高效地使用新机能 2、移动语义(C11): 右值表明这个对象适合…

Unable to Locate package python2 | Linux Ubuntu系统下python2和cif2cell的安装

Linux Ubuntu系统下python2的安装 安装键入命令和报错如下: 背景:官方早年前已经宣布停止 Python 2 的更新和服务,所以对于ubuntu20版本之后的,都是自带安装了python3,但是我们在处理安装某些大型科学计算程序的时候…

【python百炼成魔】python之字典详解

前言 今天我们一起来探讨python的另外一种类型: 字典,如果你没有看过列表和元组,建议先学习列表和元组。 【python百炼成魔】python之元组详解 【python百炼成魔】python之列表详解 文章目录 前言字典的概念语法格式及字典的创建字典的日常…

广告数仓:可视化展示

系列文章目录 广告数仓:采集通道创建 广告数仓:数仓搭建 广告数仓:数仓搭建(二) 广告数仓:全流程调度 广告数仓:可视化展示 文章目录 系列文章目录前言一、FineBI1.FineBI下载2.软件安装3.配置数据库 二、数据可视化1…

I3C协议手册研读-2

阿兴的理解 I3C的时序主要包括SDR模式、HDR模式(HDR-DDR、HDR-TSP、HDR-TSL) 阿兴的理解 上图主要介绍了SDR模式,SDR模式下的波形远看很像I2C波形,因此可以被逻辑分析仪识别到。此外,SDR较I2C增加了一些新的特征。 阿兴的理解 图中很好的绘制…

Unity 事件监听与广播(高度解耦合,观察者模式)

文章目录 1. 目的2. 主要思路3. 基础类4. EventCenter 事件中心类5. 测试 1. 目的 使用观察者模式降低模块间的耦合性 2. 主要思路 通过C# 的 Dictionary 存放事件码和事件的委托添加事件: 判断字典是否有该事件码,没有添加判断当前委托类型与添加的事…