当前位置: 首页 > news >正文

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

 

相关文章:

  • Qlib从入门到精通
  • 2022年全国职业院校技能大赛高职组云计算正式赛卷第三场-公有云
  • pytorch01:概念、张量操作、线性回归与逻辑回归
  • 【论文阅读】Realtime multi-person 2d pose estimation using part affinity fields
  • x-cmd-pkg | 音视频处理领域中常用的开源转换工具:ffmpeg
  • Kubernetes 学习总结(43)—— Kubernetes 从提交 deployment 到 pod 运行的全过程
  • SpringBoot 集成 Kafka消息中间件,Docker安装Kafka环境
  • Eureka相关面试题及答案
  • Jenkins 系列:Jenkins 安装(Windows、Mac、Centos)和简介
  • C++基础-文件读写操作详解
  • SpringBoot 请求参数
  • pycharm配置pyrcc5外部工具
  • 详解数组的轮转
  • 总结项目中oauth2模块的配置流程及实际业务oauth2认证记录(Spring Security)
  • ArcGIS Pro中Conda环境的Scripts文件解读
  • python3.6+scrapy+mysql 爬虫实战
  • Cumulo 的 ClojureScript 模块已经成型
  • Java多态
  • java正则表式的使用
  • JS正则表达式精简教程(JavaScript RegExp 对象)
  • Netty 框架总结「ChannelHandler 及 EventLoop」
  • Spring Boot快速入门(一):Hello Spring Boot
  • vue.js框架原理浅析
  • Vue.js源码(2):初探List Rendering
  • 动态魔术使用DBMS_SQL
  • 开源地图数据可视化库——mapnik
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 聊聊spring cloud的LoadBalancerAutoConfiguration
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • nb
  • 浅谈sql中的in与not in,exists与not exists的区别
  • 直播平台建设千万不要忘记流媒体服务器的存在 ...
  • ​Linux·i2c驱动架构​
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • (1)(1.13) SiK无线电高级配置(六)
  • (13)Latex:基于ΤΕΧ的自动排版系统——写论文必备
  • (aiohttp-asyncio-FFmpeg-Docker-SRS)实现异步摄像头转码服务器
  • (动手学习深度学习)第13章 计算机视觉---微调
  • (附源码)ssm高校实验室 毕业设计 800008
  • (十二)python网络爬虫(理论+实战)——实战:使用BeautfulSoup解析baidu热搜新闻数据
  • (十三)Maven插件解析运行机制
  • (十一)手动添加用户和文件的特殊权限
  • (转)编辑寄语:因为爱心,所以美丽
  • (转)为C# Windows服务添加安装程序
  • **CI中自动类加载的用法总结
  • .Net CF下精确的计时器
  • .NET CORE 第一节 创建基本的 asp.net core
  • .NET关于 跳过SSL中遇到的问题
  • .NET设计模式(8):适配器模式(Adapter Pattern)
  • .Net转前端开发-启航篇,如何定制博客园主题
  • /3GB和/USERVA开关
  • @SuppressLint(NewApi)和@TargetApi()的区别
  • [ vulhub漏洞复现篇 ] Grafana任意文件读取漏洞CVE-2021-43798
  • [AutoSAR系列] 1.3 AutoSar 架构
  • [BUUCTF NewStarCTF 2023 公开赛道] week4 crypto/pwn