Java中IO流-14-FileOutputStream类

2024-06-11 11:32
文章标签 java 14 io fileoutputstream

本文主要是介绍Java中IO流-14-FileOutputStream类,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

      上一篇,学习了FileInputStream类,知道了read()方法读取是一个一个字节读取内容,而且返回类型是int类型。这里简单解释下为什么返回类型是int类型,而不是byte类型。byte类型是占用一个字节,有8个比特位,而int类型占用4个字节,一共32个比特位。原理就是,如果读取到一个字节八个位都是1,也就是11111111,这个如果是byte类型,那么就表示-1,read方法遇到-1就会停止读下去,后面内容就不会再读。因为现在数据有图片,声音,视频,不能保证没有一个字节存在8个1的情况。所以,改成int类型就在8个1前面自动补齐24个0,这个时候11111111表示int类型下的255.


1.FileOutputStream

      知道了FileInputStream,那么FileOutputSteam就是输出字节流的类,其中write方法也是一次写入一个字节。这里可以叫输出一个字节到文件更合适。下面,我们还是用前面文章abc.txt来运行下面代码是不是写了一个单词d。

package io;import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;public class Demo2_FileOutStream {public static void main(String[] args) throws IOException {//字节输出流,如果没有该文件就会自动创建有一个,有就不会FileOutputStream fos = new FileOutputStream("abc.txt");//写入一个字节dfos.write(100);fos.close();}}

      运行之后,手动打开abc.txt,发现会把之前文件里的abc先擦除,然后写入字节d。原因就是FileOutputStream如果发现本地abc.txt文件存在,就会先把文件里内容清空,然后再写入。但是我想不要清空,直接在后面追加,怎么做呢。我们再回到API文档看FileOutputStream的构造函数,其中有FileOutputStream(File file, boolean append) 这个方法。

      下面代码改变下,运行看看是不是追加了。当前文件abc.txt内容只有一个d单词,下面追加abc

package io;import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;public class Demo2_FileOutStream {public static void main(String[] args) throws IOException {//字节输出流,如果没有该文件就会自动创建有一个,有就不会FileOutputStream fos = new FileOutputStream("abc.txt", true);//写入 abcfos.write(97);fos.write(98);fos.write(99);fos.close();}}
运行之后,abc.txt文件内容变成dabc,确实实现了追加的效果。


这篇关于Java中IO流-14-FileOutputStream类的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1051046

相关文章

Java CompletableFuture如何实现超时功能

《JavaCompletableFuture如何实现超时功能》:本文主要介绍实现超时功能的基本思路以及CompletableFuture(之后简称CF)是如何通过代码实现超时功能的,需要的... 目录基本思路CompletableFuture 的实现1. 基本实现流程2. 静态条件分析3. 内存泄露 bug

Java中Object类的常用方法小结

《Java中Object类的常用方法小结》JavaObject类是所有类的父类,位于java.lang包中,本文为大家整理了一些Object类的常用方法,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. public boolean equals(Object obj)2. public int ha

SpringBoot项目中Maven剔除无用Jar引用的最佳实践

《SpringBoot项目中Maven剔除无用Jar引用的最佳实践》在SpringBoot项目开发中,Maven是最常用的构建工具之一,通过Maven,我们可以轻松地管理项目所需的依赖,而,... 目录1、引言2、Maven 依赖管理的基础概念2.1 什么是 Maven 依赖2.2 Maven 的依赖传递机

SpringBoot实现动态插拔的AOP的完整案例

《SpringBoot实现动态插拔的AOP的完整案例》在现代软件开发中,面向切面编程(AOP)是一种非常重要的技术,能够有效实现日志记录、安全控制、性能监控等横切关注点的分离,在传统的AOP实现中,切... 目录引言一、AOP 概述1.1 什么是 AOP1.2 AOP 的典型应用场景1.3 为什么需要动态插

Java实现Excel与HTML互转

《Java实现Excel与HTML互转》Excel是一种电子表格格式,而HTM则是一种用于创建网页的标记语言,虽然两者在用途上存在差异,但有时我们需要将数据从一种格式转换为另一种格式,下面我们就来看看... Excel是一种电子表格格式,广泛用于数据处理和分析,而HTM则是一种用于创建网页的标记语言。虽然两

java图像识别工具类(ImageRecognitionUtils)使用实例详解

《java图像识别工具类(ImageRecognitionUtils)使用实例详解》:本文主要介绍如何在Java中使用OpenCV进行图像识别,包括图像加载、预处理、分类、人脸检测和特征提取等步骤... 目录前言1. 图像识别的背景与作用2. 设计目标3. 项目依赖4. 设计与实现 ImageRecogni

Java中Springboot集成Kafka实现消息发送和接收功能

《Java中Springboot集成Kafka实现消息发送和接收功能》Kafka是一个高吞吐量的分布式发布-订阅消息系统,主要用于处理大规模数据流,它由生产者、消费者、主题、分区和代理等组件构成,Ka... 目录一、Kafka 简介二、Kafka 功能三、POM依赖四、配置文件五、生产者六、消费者一、Kaf

Java访问修饰符public、private、protected及默认访问权限详解

《Java访问修饰符public、private、protected及默认访问权限详解》:本文主要介绍Java访问修饰符public、private、protected及默认访问权限的相关资料,每... 目录前言1. public 访问修饰符特点:示例:适用场景:2. private 访问修饰符特点:示例:

详解Java如何向http/https接口发出请求

《详解Java如何向http/https接口发出请求》这篇文章主要为大家详细介绍了Java如何实现向http/https接口发出请求,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 用Java发送web请求所用到的包都在java.net下,在具体使用时可以用如下代码,你可以把它封装成一

SpringBoot使用Apache Tika检测敏感信息

《SpringBoot使用ApacheTika检测敏感信息》ApacheTika是一个功能强大的内容分析工具,它能够从多种文件格式中提取文本、元数据以及其他结构化信息,下面我们来看看如何使用Ap... 目录Tika 主要特性1. 多格式支持2. 自动文件类型检测3. 文本和元数据提取4. 支持 OCR(光学