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字符输出流

 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

移动硬盘打不开怎么办?没有比这更好的办法了

移动硬盘打不开是常见故障,可能的原因有很多,例如硬盘驱动器故障、文件系统损坏、分区表错误等。本文将详细分析这些原因,并提供相应的解决方法,帮助您解决移动硬盘打不开的问题。 当移动硬盘打不开时,为了保留其中的文…

设计模式(4)--对象行为(11)--访问者

1. 意图 表示一个作用于某对象结构中的各元素的操作。 使你可以在不改变各元素的类的前提下定义于作用于这些元素的新操作。 2. 五种角色 抽象访问者(Visitor)、具体访问者(Concrete Visitor)、抽象元素(Element)、 具体元素(Concrete Element)、对象结构(ObjectStructure) 3…

[场景实现]:多选框与树形结构递归

一、场景描述 实现一个分配权限的页面,最左侧是大的权限模块的名称,左右侧是控制其是否勾选的多选框。中间部分是一级权限模块下的子权限名称及多选框。 请求此权限模块数据的接口返回的是树形结构 对象数组。 主要属性为menuName表示权限名&#xff0…

ArkTS - 组件生命周期

一、先说下自定义组件 在arkTs中,自定义组件分为两种(我的总结): 一种是:根组件,就是被装饰器Entry装饰的入口组件,这也是自定义组件(父组件)。 另一种是:没有被Entry装饰的自定义…

设计模式Java向

设计原则: 开闭原则: 用例对象和提供抽象功能进行分割,用例不变,抽象功能被实现,用于不断的扩展,于是源代码不需要进行修改,只在原有基础上进行抽象功能的实现从而进行代码扩展。不变源于代码…

x-cmd-pkg | deno - 更快更强的 JS 和 TS 运行时

目录 简介首次用户技术特点进一步阅读 简介 Deno 是一个基于 V8 引擎和 Rust 语言构建的 JavaScript 和 TypeScript 运行时环境,于 2018 年由 Ryan Dahl 在演讲中宣布,并在 2020 年正式发布 1.0,目标是提供一个高效且安全的脚本环境。 安全…

typora的笔记丢失了怎么办?

突然打开电脑发现原本保存的typora的笔记全部不见了,头痛…… 解决方法:点击typora中的文件,选择偏好设置,点击[恢复未保存的草稿],然后可以在文件夹中找到最后一次保存该文件的版本。 自己又将自动保存勾选上了&…

数据结构学习 Leetcode322 零钱兑换

关键词:动态规划 完全背包 记忆化搜索 一个套路: 01背包:空间优化之后dp【target1】,遍历的时候要逆序遍历完全背包:空间优化之后dp【target1】,遍历的时候要正序遍历 题目: 方法一&#xff…

大数据 - 大数据入门第一篇 | 关于大数据你了解多少?

🐶1.1 概述 大数据(BigData):指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。 大数据主要解决、海量数据的采…

VMware安装RHEL9.0版本Linux系统

最近在学习Linux,安装了Red Hat Enterprise Linux 的 9.0版本,简称RHEL9.0。RHEL9.0是Red Hat公司发布的面向企业用户的Linux操作系统的最新版本。我把它安装在虚拟机VMware里来减少电脑性能占用,也防止系统炸搞得我后面要重装。安装RHEL9.0还…

简单的springboot项目

传参方式 URL 传参 URL 传参的两种常见方式是通过查询参数和路径参数。 查询参数: 查询参数是通过在 URL 后面使用 ? 字符,然后以 keyvalue 的形式添加到 URL 中。多个查询参数之间使用 & 符号分隔。例如:https://example.com/api?…

[每周一更]-(第40期):GIT更换远程仓库地址

方法一 通过命令直接修改远程地址 进入git_test根目录 git remote 查看所有远程仓库, git remote xxx 查看指定远程仓库地址 git remote set-url origin https://git.dev.tencent.com/ifanatic/2H.git方法二 通过命令先删除再添加远程仓库 1.进入git_test根目录 2…