Java 日看一类(40)之IO包中的OutputStream类和Closeable接口

微波无源器件 功分器1 新型方波导双模无功功分器 本名证明了一种基于有着特定功能的(dedicated)T性匹配元件(散射件)的进化结点的新型波导双模两路功分器的可行性。这个散射件,有着面向三个部分的匹配部分,提供了等效功分并且朝着对应的输出端口传输矩形波导的两个TE10/TE01正交模式。所提出的设计紧凑,易于比例变化并且能够级联来获得。 阅读详情

该类是输出流的“鼻祖”,所有的输出流都继承了该类


该类完成了Closeable,Flushable接口

无引入其他包


该类的类头注释如下:

/**
 * This abstract class is the superclass of all classes representing
 * an output stream of bytes. An output stream accepts output bytes
 * and sends them to some sink.
 * <p>
 * Applications that need to define a subclass of
 * <code>OutputStream</code> must always provide at least a method
 * that writes one byte of output.
 *
 * @author  Arthur van Hoff
 * @see     java.io.BufferedOutputStream
 * @see     java.io.ByteArrayOutputStream
 * @see     java.io.DataOutputStream
 * @see     java.io.FilterOutputStream
 * @see     java.io.InputStream
 * @see     java.io.OutputStream#write(int)
 * @since   JDK1.0
 */

大意如下:

该抽象类是所有byte输出流的顶级类

一个输出流接收需要输出的bytes然后发送到底层

应用需要去声明该类的子类,并且必须至少提供用于写出一个byte的方法



该类含有如下的成员方法:

写出一个byte(必须被子类提供)

public abstract void write(int b) throws IOException;

写出一个byte数组

public void write(byte b[]) throws IOException {
    write(b, 0, b.length);
}

写出byte数组中的特定位置和长度的byte

public void write(byte b[], int off, int len) throws IOException {
    if (b == null) {
        throw new NullPointerException();
    } else if ((off < 0) || (off > b.length) || (len < 0) ||//判定数组下标有效性
               ((off + len) > b.length) || ((off + len) < 0)) {
        throw new IndexOutOfBoundsException();
    } else if (len == 0) {
        return;
    }
    for (int i = 0 ; i < len ; i++) {//循环调用写出一个byte的方法
        write(b[off + i]);
    }
}

刷新流(该类会强制流中的缓存数据立即被写出,一般也是这么用,写了一些东西,差不多就flush。该方法只能保证将数据提交给操作系统,不能保证数据被写到物理介质上(当输出目标为操作系统提供的抽象概念时,如文件))

public void flush() throws IOException {
}

关闭流

public void close() throws IOException {
}


该类的结构基本就是所有输出类的大体结构,其他输出流在此基础上进行扩充,例如buffer类添加了缓冲区,writer提供了转码,Filter提供了双层输出流来进行过滤(内含实际的输出流,外部封包了一层)


Closeable该类继承自AutoCloseable类

引入了如下包(我也不知道为啥在同一个包内需要import,估计是写错了)

import java.io.IOException;


该类类头注释如下:

/**
 * A {@code Closeable} is a source or destination of data that can be closed.
 * The close method is invoked to release resources that the object is
 * holding (such as open files).
 *
 * @since 1.5
 */

大意如下:

Closeable标识了可以被关闭数据源或者目标

close方法被调用来释放被该对象掌控的资源(例如打开的文件)


该类含有如下的成员方法:

关闭当前对象,释放资源(在流已经关闭的情况下不产生任何影响。该方法在某些特定情况下可能会调用失败,抛出IO异常。在这种情况下强烈建议先放弃底层资源,在IOException被抛出前内部关闭(特定情况见AutoCloseable))

public void close() throws IOException;


该类被几乎所有输入输出类继承,效果和作用也十分清晰。只是在报错的时候需要注意出现的是哪种特殊情况,同时并处理Close失败的异常。

通用抓取————6D位姿估计 这意味着算法在没有物体的先验知识(如 CAD 模型)的情况下,依然能够通过神经网络捕捉物体的外观、形状和几何特征,生成相关的 6D 位姿估计。通过输入物体类别的描述,算法能够推断出该类别物体的位姿和尺度,无需特定物体的 CAD 模型。在这个坐标空间中,物体的位姿和尺度都是已知的,基于这个标准化表示,算法可以对输入图像中的物体进行 6D 位姿和尺寸的估计。○优势: ICP 是一种非常有效的位姿优化算法,特别适合精细调整物体的位姿,确保最终估计的位姿与真实物体的点云或模型高度一致。 阅读详情

相关推荐

深入解析摄像头硬件接口:DVP、MIPI-CSI2与USB的技术对比与应用场景

本文深入解析了摄像头三大主流硬件接口DVP、MIPI-CSI2与USB的核心技术差异。DVP接口作为并行传输的“老兵”,成本低但带宽和抗干扰能力有限;MIPI-CSI2凭借差分串行设计成为移动高清设备的首选,具备高带宽和强抗干扰性;USB接口则依托UVC标准实现了跨平台的即插即用。文章通过对比传输方式、带宽、应用场景等关键维度,为智能硬件、嵌入式系统等领域的工程师提供了清晰的选择指南。

c7d8e的博客 515

字节输出流 OutputStream 总结

字节输出流 OutputStream 总结 简单理解:输出流针对文件来说就是 流的输出 到 文件的写入 ; 输入入流针对文件来说就是 文件的读取 到 流的输入 ; OutputStream 是抽象类,依靠子类不同,同一方法实现的功能也不同。本次总结的是针对文件操作的子类 FileOutputStream 所属包:java -- io 因OutputStream是的抽象类,所以需要通过实例化子类来...

weixin_30955617的博客 1011

SDU CS 期末考回忆版合集

删除原有分散的版本,合订起来画个。包括:机器学习、算法、图形学、操作系统、编译原理、软件工程、大数据分析管理、计算机体系结构等。

https://github.com/ZhaoyungZhang 6650

java.io.Closeable接口介绍

Override// 释放其他资源的逻辑使用Closeable接口主要用于需要显式管理资源生命周期的场景,如文件、网络连接和数据库连接等。通过实现Closeable接口并使用 try-with-resources 语句,可以确保资源在使用完毕后被正确释放,从而提高代码的健壮性和可维护性。

qq_27390023的博客 966

《寻秦OL》.ani动画逆向解析:二进制结构与Unity重实现

动画文件格式是游戏资源逆向的核心入口,其本质是一组按特定规则组织的二进制数据流。理解魔数识别、字节序、字段对齐与差分编码等底层原理,是解析非标准格式的关键前提。技术价值在于绕过黑盒协议,直接从静态客户端提取可验证的原始语义;典型应用场景包括老游戏复刻、美术资产抢救、引擎跨平台迁移及教学级逆向训练。本文以《寻秦OL》的`.ani`文件为实例,深入剖析其C风格结构布局、GB2312中文命名、16位定点数旋转表示及帧主序差分存储机制,并基于C#在Unity中完成从字节流到AnimationClip的端到端重建,覆

weixin_30368981的博客 641

PySWMM新手避坑指南:从安装到批量处理INP文件的完整流程(附常见错误解决方案)

本文为PySWMM新手提供从环境搭建到批量处理INP文件的完整避坑指南。详细讲解了虚拟环境配置、库安装方法,并针对“无法打开输入文件”和对象访问错误等高频问题提供解决方案。核心部分展示了如何利用Python脚本实现INP文件的批量运行、结果汇总以及参数自动化修改,显著提升SWMM模型的工作效率。

weixin_29092031的博客 393

Java_191_网络编程_手写聊天室_OOP封装_Closeable自定义关闭_Client发送_Client接收_Server服务_引入Thread进行封装

Closeable自定义关闭类 package TalkTCPSocket; import java.io.Closeable; public class Utils { public static void close(Closeable... targets) { for (Closeable target : targets) { try { if (null != target) { target.close(); } } catch (Excep

pmcasp的博客 269

手把手教你用Verilog实现AT24C64的I2C读写(附完整仿真流程)

本文详细介绍了如何使用Verilog HDL设计AT24C64 EEPROM的I2C控制器,并配合ModelSim完成完整的仿真验证流程。内容涵盖I2C协议解析、Verilog状态机设计、AT24C64读写操作实现,以及仿真波形分析和调试技巧,为FPGA开发者提供了一套完整的EEPROM控制解决方案。

3c4x5z6v7b的博客 847

closeable java_Closeable.java

/** Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.** This code is free software; you can redistribute it an...

weixin_39914938的博客 196

Unity 多线程编程笔记 _Task详解

士大夫

weixin_43405845的博客 4384

Airtest进阶使用篇-提高脚本稳定性+批量运行脚本

Airtest进阶篇,主要分享如何提高脚本稳定性+如何批量运行脚本生成测试报告!

程序员小杨哥的博客 2573

Java实现创建Zip压缩包并写入文件

使用ZipOutputStream创建压缩包,并将数据写入到压缩包内形成文件,当然也可以在压缩包内构建多级目录文件。

weixin_45866737的博客 7048

YOLO26涨点改进 | Conv篇/小目标改进 | AAAI 2025 FBRT-YOLO 两个轻量级FCM和MKP模块, 助力无人机航拍任务VisDrone、UAVDT和AI-TOD高效涨点

本文提出FBRT-YOLO26模型,通过引入两个轻量级模块FCM和MKP优化航拍图像检测性能。FCM模块通过特征互补映射解决小目标信息丢失问题,MKP模块利用多尺度卷积核增强目标感知能力。在VisDrone等数据集上的实验表明,该方法在精度和速度上均优于现有实时检测器。文章详细介绍了模块结构、核心代码实现及YAML配置文件修改方法,为航拍图像中的小目标检测提供了高效解决方案。该模型实现了检测精度与效率的良好平衡,具有实际应用价值。

Ai缝合怪、助力小伙伴高效发论文 369

Java-IO流体系详解,了解IO流全家族成员

FileOutputStream 输出流可以把内存中的东西写入到磁盘中去长久保存,其实也可以结合 File InputStream 输入流完成文件的复制操作,思路很简单,我们知道,文件是保存在磁盘中的,我们可以先通过输入流将要复制的文件读取到内存中去,然后再通过输出流写入到硬盘中我们制定好的位置,就能完成文件的复制操作。其实我上面所写的程序,可以复制任何文件,如图片,音频,视频,文件夹,文本文件都可以,因为在计算机底层,所有文件都是以字节的方式存储的,而我们所写的方法正是字节输入流与字节输出流。

m0_70325779的博客 326

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Java生成Word文档全攻略:从POI到POI-TL的工程实践与性能优化

在Java企业级应用开发中,动态生成Word文档(如报告、合同)是一项常见且关键的需求。其核心原理在于对Office Open XML(OOXML)格式的解析与操作,通过程序化方式构建或填充文档结构。这项技术的核心价值在于将数据与样式分离,实现文档生成的自动化与批量化,从而显著提升业务处理效率。在实际应用场景中,开发者常面临样式控制、性能瓶颈和可维护性等挑战。Apache POI作为底层库提供了全面的操作能力,但直接使用其API进行复杂样式编排会导致代码冗长且维护困难。因此,基于模板引擎的方案(如POI-T

weixin_34269583的博客 340

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

FileOutputStream类详解(画图分析)

FileOutputStream类的详解 首先我们先看一下它的构造方法 FileOutputStream(File file) 创建一个向指定 File 对象表示的文件中写入数据的文件输出流。 FileOutputStream(File file,boolean append) 意思同上,但是可以追加数据,不覆盖原有数据 FileOutputStream(String path) 创建一个向具有指定名称的文件中写入数据的输出文件流。 FileOutputStream(String path,bo

qq_44828283的博客 1483

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

java.io.Closeable 接口

package java.io; import java.io.IOException; /** * 关闭数据资源*/public interface Closeable extends AutoCloseable { /** * 关闭流,以及释放和它有关的资源。 * 如果这个流已经关闭,调用这个方法将不起作用。猜测不会报错 */ public void...

weixin_30467087的博客 268

java io流类图

基于字节的I/O操作(InputStream和OutputStream) 二者类似,我只详细讲解InputStream类,OutputStream留给大家自己去学习。InputStream类是个抽象类,里面核心的方法就是read()、read(byte b[])、read(byte b[], int off, int len),这三个方法是用于读取数据的底层的方法,他们可

HEXINLI的专栏 6895

IO包之OutputStream类

OutputStream是一个抽象类,是所有字节输出流的父类(例如FileOutputStream)其包含了如下几个常见的方法1.abstract write(int b)将指定的字节写入此输入流;注意:write的常规协定是写入的字节是b的低八位,b的高24位会被自动忽略掉。2.write(byte[] b)将b.length个字节写此输入流。                          ...

青色橙子 522

Closeable的作用

Closeable的作用在java.io.包下 InputStream,outputStream, Reader, Writer 等基类都实现了Closeable接口,因为每次的IO操作结束之后都要去释放资源。1: 如果在调用此方法之前 stream已经关闭 ,则方法失效; 2:建议先关闭内部的资源,并标记为已关闭; 3:优先抛出IO异常;public interface Closeable

wen1187365110的专栏 1万+

java中输出流OutputStream 类应用实例(转)

  OutputStream类该类是字节输出流的抽象类,定义了输出流的各种操作方法。这些方法的说明如表1所示。下面通过实例介绍如何使用OutputStream类向控制台输出字符串信息。步骤如下。(1)创建OutputStreamWriteStr类,在类中创建OutputStream类的实例对象out,并为其赋值为System类的out属性,该属性是控制台的输出流,再定义一个字节数组,该数组是将要...

weixin_34288121的博客 467

JAVA读取stream_java – 我们如何读取或使用outputstream的内容

我们如何阅读或使用outputstream的内容.就我而言,我正在使用一种具有签名的方法.public static OutputStream decryptAsStream(InputStream inputStream,String encryptionKey)此方法返回OutputStream.我想让OutputStream成为String.是否可以将java.io.OutputStream...

weixin_30871011的博客 3075

Java流类图结构

Justin的专栏 1007

BufferedOutputStream类的详解(画图分析)

首先看一个BufferedOutputStream 可以这么理解,BufferedOutputStream类就是对FileInputStream类的加强。它是一个加强流。为什么成为加强流?就是因为这个加强流在进行输出时会在内存中开辟一块缓冲区。因为缓冲区在内存中的读写速度很快,以此来达到提升输出流的效率 参考:缓冲流帮助理解 ...

qq_44828283的博客 5881

Java基础之详谈IO流

Java基础知识、IO流详细讲解。你所要的IO这里都有

weixin_63597125的博客 407

response的outputStream输出数据的问题

package cn.itcast.response; import java.io.IOException; import java.io.OutputStream; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServl

待到山花烂漫时 2583
上一篇: Java自制简易Http服务器(2)
下一篇: Java 日看一类(41)之IO包中的OutputStreamWriter类
wyf95278
博客等级 码龄10年 38粉丝 71原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值