Java:IO流——字节流和字符流

目录

IO流的基本概念

IO流体系结构

FileOutputStream字节输出流

构造方法

成员方法

细节

关流

FileInputStream字节输入流

构造方法及成员方法

read不带参数代码示例

read带参数代码示例​编辑

将字节数组或字符数组转成字符串

FileReader 字符输入流

构造方法和成员方法

成员方法代码示例(和字节输入流类似)

FileWriter字符输出流


IO流的基本概念

IO流中的I是input,指的是输入,又叫读取,当java程序需要读取数据库的数据时,可以开通一个输入流管道,让java程序和数据库建立关联

IO流中的O是output,指的是输出,又叫写出,当java程序需要向数据库中写入数据时,可以开通一个输出流管道,让java程序和数据库建立关联

OI流可用于数据传输

IO流体系结构

Java中的流对象大体分为两大类:字节流(万能流)和字符流

字节流可以操作任意类型的文件,但是操作纯文本文件的时候,可能会出现乱码问题。所以凡是纯文本文件,都用字符流

FileOutputStream字节输出流

构造方法

输出流关联文件,若文件不存在,会自动创建文件

成员方法

第三个方法中,第二个参数off表示从哪个位置开始写,第三个参数len表示写多少个

细节

                    输出流关联文件, 文件如果不存在: 会自动创建出来

                     如果文件存在: 会清空现有的内容, 然后再进行写入操作,若想不清空文件内容直接追加,则需要将构造函数的第二个参数写为true(第二个参数默认值为false)

package com.itheima.stream.output;

import java.io.FileOutputStream;
import java.io.IOException;

public class FileOutputStreamDemo1 {
    /*
        字节流写出数据

            构造方法:
                    1. public FileOutputStream(String name) : 输出流关联文件, 文件路径以字符串形式给出
                    2. public FileOutputStream(File file) : 输出流关联文件, 文件路径以File对象形式给出

            成员方法:
                    public void write(int i) : 写出一个字节
                    public void write(byte[] bys) : 写出一个字节数组

            细节:
                    输出流关联文件, 文件如果不存在: 会自动创建出来
                                    如果文件存在: 会清空现有的内容, 然后再进行写入操作
     */
    public static void main(String[] args) throws IOException {
        // 创建字节输出流对象, 关联文件
        FileOutputStream fos = new FileOutputStream("D:\\A.txt", true); //true:追加,避免写入时清空文件

        byte[] bys = {97, 98, 99};

        // 写出数据
        fos.write(97);
        fos.write(98);
        fos.write(99);
        fos.write(bys);
        fos.write("你好你好".getBytes()); //字符串的getBytes方法可将字符串转换成字节数组
        fos.write(bys, 1, 2);
    }
}

关流

 在JDK7版本之前,标准关流操作需要用到普通的try-catch方法,语法繁琐,了解即可

JDK7版本之后

FileInputStream字节输入流

构造方法及成员方法

 

read不带参数代码示例

 

read带参数代码示例

将字节数组或字符数组转成字符串

FileReader 字符输入流

构造方法和成员方法

成员方法代码示例(和字节输入流类似)

 

FileWriter字符输出流

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

解决ELement-UI懒加载三级联动数据不回显(天坑)

最老是遇到这类问题头有点大,最后也是解决了,为铁铁们总结了一下几点 一.查看数据类型是否一致 未选择下 选择下 二.处理数据时使用this.$set方法来动态地设置实例中的属性,以确保其响应式 三.绑定v-if 确保每次重新加载 四.绑定key 五.完整代码

对比学习简介

1. 引言 在本教程中,我们将介绍对比学习领域中的相关概念。首先,我们将讨论这种技术背后相关的理论知识;接着,我们将介绍最常见的对比学习的损失函数和常见的训练策略。 闲话少说,我们直接开始吧! 2. 举…

众安保险实习Java一面

说一下事务的ACID属性 原子性(Atomicity):原子性是指事务是一个不可分割的工作单位,事务中的操作要么全部成功,要么全部失败。 一致性(Consistency):事务按照预期生效,…

常用环境部署(十二)——Redis搭建主从模式(一主一从)

一、主从服务器Redis安装 1、注意事项 主从服务器Redis尽量安装同一版本,避免兼容性造成的一些错误产生 2、Centos安装Redis 链接:​​​​​​常用环境部署(十)——MySQL主从同步数据搭建(一主一从)-CSDN博客 二、 主Redis配置 1、修改主Redis配置…

让你的 Python 代码更快的 9 个技巧

在最近参加的一些技术会议上,我常常听到参会员在会中讨论技术选型时提到“Python太慢了”。然而,这种观点往往没有考虑到Python的众多优点。实际上,如果能够遵循Pythonic的编程风格,Python的运行速度可以非常快。这其中的关键在于掌握一些技术细节上的巧妙技巧。那些经验丰…

Python文本用户界面进化:探索Textual框架,编程新境界

更多Python学习内容:ipengtao.com 文本用户界面(TUI)在很多应用中扮演着重要的角色,尤其是在需要在终端中运行的应用程序中。Python作为一门强大的编程语言,提供了多种工具和库来构建文本用户界面。在本文中&#xff0…

LabVIEW开发智能火灾自动报警系统

LabVIEW开发智能火灾自动报警系统 系统基于LabVIEW虚拟仪器开发,由火灾报警控制器、感温感烟探测器、手动报警器、声光报警器、ZigBee无线通讯节点以及上位机电脑等组成,展示了LabVIEW在智能化火灾预警与控制方面的应用。该系统通过结合二总线协议和Zig…

windows PE文件都包含哪些信息【详细汇总介绍】

目录 1. DOS头 DOS头的作用 DOS头的结构 C代码判断PE文件 2. PE文件签名 PE文件签名的位置和作用 PE文件签名的结构 COFF(Common Object File Format)头 COFF头的结构 COFF头的作用 代码 3. 标准PE头&可选PE头 标准PE头 可选PE头 4. …

python使用openpyxl操作excel

文章目录 前提读取已有excel创建一个excel工作簿对象创建excel工作簿中的工作表获取工作表第一种:.active 方法第二种:通过工作表名获取指定工作表​​​​​​第三种:.get_sheet_name() 修改工作表的名称数据操作写入数据按单元格写入通过指…

如何手写一个消息队列和延迟消息队列?

Java学习面试指南:https://javaxiaobear.cn 第一次听到“消息队列”这个词时,不知你是不是和我反应一样,感觉很高阶很厉害的样子,其实当我们了解了消息队列之后,发现它与普通的技术类似,当我们熟悉之后&…

多线程编程设计模式(单例,阻塞队列,定时器,线程池)

💕"只有首先看到事情的可能性,才会有发生的机会。"💕 作者:Mylvzi 文章主要内容:多线程编程设计模式(单例,阻塞队列,定时器,线程池) 本文主要讲解多线程编程中常用到的设计模式,包括单例模式,阻塞队列,定时…

“C语言与人生:手把手教你玩转C语言数组,从此编程无难题“

各位少年,我是博主那一脸阳光,由我来给大家介绍C语言的数组的详解。 在C语言中,数组是一种极其重要的数据结构,它允许我们存储和管理相同类型的一系列相关数据。通过理解并熟练掌握数组的使用,开发者能够高效地处理大量…

激发AI时代操作系统创新活力,统信UOS持续拓宽生态护城河

操作系统作为信息技术产业之“魂”,在2023年迈进“真替真用阶段”,迎来强势崛起。 国产操作系统产业依托数字化转型浪潮,市场份额逐年递增,并向智能计算等方向加速进化。经过数年的深耕,统信软件交出漂亮成绩单。最新…

SpringCloud(H版alibaba)框架开发教程,使用eureka,zookeeper,consul,nacos做注册中心——附源码(1)

源码地址:https://gitee.com/jackXUYY/springboot-example 创建订单服务,支付服务,公共api服务(共用的实体),eureka服务 1.cloud-consumer-order80 2.cloud-provider-payment8001 3.cloud-api-commons 4.…

kotlin快速入门1

在Google I/O 2017中,Google 宣布 Kotlin 成为 Android 官方开发语言。目前主流AndroidApp开发已经全部切换成此语言,因此对于Android开发而言,掌握Kotlin已经变成必要事情。 Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言&#xff…

Armpro脱壳软件搭建教程附源代码

PHP8.0版本,数据库8.0版本 1.配置注册机文件,打开将arm.zip/res目录下,mt管理器搜索将其全部修改为你自己的域名或者是服务器IP 2.然后建立数据库 数据库账号arm 数据库用户名arm 数据库密码EsZfXY4tD3h2NNA4 3.导入数据库 4.配置Redi…

算法基础之滑雪

滑雪 核心思想&#xff1a;记忆化搜索 状态表示&#xff1a; f[i][j] 表示所有从(i,j) 开始滑的路径的最大值 状态计算&#xff1a; 分成四个方向 f[i][j] max(f[i][j] , f[i][j1] 1) 且h[a][b] (下一个点) 必须严格小于 h[i][j] 才能滑过去 #include<iostream>#…

图像去雾/图像去雨(matlab/python)

图像去雾和图像去雨是计算机视觉领域的两个重要问题&#xff0c;旨在改善被大气条件或降雨影响而模糊或噪声化的图像质量。这两个技术在很多实际应用中具有广泛的价值&#xff0c;包括无人驾驶、安防监控、航空航天等领域。下面将分点介绍图像去雾和图像去雨的相关内容。 1. 图…

紫光展锐5G扬帆出海 | 东南亚成为5G新热土

东南亚是一块充满活力和潜力的市场&#xff0c;这里人口基数大、年轻消费群体占比高&#xff0c;电子市场在过去几年显著增长。 增速“狂飙”的东南亚手游 近年来&#xff0c;东南亚手游下载量逐年增长&#xff0c;2023 年第一季度下载量突破 21 亿次&#xff0c;贡献了全球近…

结构体:枚举

#include<iostream> using namespace std; int main() {enum weekday { mon, tus, wed, thu, fri, sat,sun }; //声明枚举类型 enum weekday day; //定义枚举变量 int a, b, c, d, e, f, g, loop; //定义整型变量 char ch A; //定义字符变量 f thu; //按照题意&a…