Java中字符流(FileReader(read、close)、FileWriter(write、close)、字符(输入、输出)流原理解析)
1.创建对象:
2.读取数据
3.释放资源(关流)
如何使用重载的read()方法呢?
FileWriter:
在前面我们指导,字节输出流和字符输出流的本质区别是,字节输出流一次只能操作一个字节,如果让其写入汉字,将会出现乱码
write(String str):
如果我们想要进行续写,可以在创建对象时打开续写开关。
字符输入流原理解析:
在读取之前,内存中会创建一个长度为8192的字节数组
question1:那如果文件中有超过8192字节的数据时,缓冲区会是什么场景?
超过8192字节的数据会覆盖原先的字节数组。
question2:如果出现以下情况会出现什么情况呢?当我们创建了FileWriter对象时,会清空文件中的代码,但是此时,我们知道在读取数据时,会创建缓冲区,此时缓冲区中的数据还没有被清空,在下面循环读取打印数据时,还是可以打印出数据值,因为此时的数据来源于缓冲区
字符输出流原理分析:
当缓冲区装满了,或者使用了flush方法、close方法时,将会自动地将缓冲区中的数据写入目的地
写入数据的第一种可能(装满了长度为8192字节的字节数组):
写入数据的第二种可能(调用flush方法):
写入数据的第三种可能(调用close方法(断流)):
Java中字符流(FileReader(read、close)、FileWriter(write、close)、字符(输入、输出)流原理解析)相关推荐
- java中判断字符串实际长度(中文2个字符,英文1个字符)的方法,包含中英文符号
java中判断字符串实际长度(中文2个字符,英文1个字符)的方法,包含中英文符号 介绍 数据库中很多字段都会限制长度,为了方便用户使用,在前端界面给出限制长度的提示,看网上很多写的获取字符串长度都没有 ...
- 浮点数0.7在Java中是无法精确存储的,却为何能精确输出0.7
2019独角兽企业重金招聘Python工程师标准>>> 这是在其他地方看到的一个提问,提问原文链接:https://www.oschina.net/question/2346828_ ...
- Java中2.5D游戏的设计与实现(3)—八方走法实现原理及相关代码
Java中2.5D游戏的设计与实现(3)-八方走法实现原理及相关代码 2.5D游戏,虽然在外观上近似于3D游戏,却又不是严格意义上讲的3D游戏,故此2.5D游戏又常被称为[伪3D游戏]. 在笔者的观念 ...
- Java中的基本数据类型讲解(数值型、字符型、布尔型)
数据类型 数据类型的分类 分为 基本数据类型和引用数据类型 基本数据类型 基本数据类型分为数值型.字符型和布尔类型 数值型 数值型分为整数型和浮点型(小数型) 整数型 包含:int. short. b ...
- java中snakeyaml工具包操作yaml文件,什么是yaml文件,yaml如何解析转换为实体,实体如何生成yaml文件
什么是yaml文件 这里就不去搞yaml的书面意思了,其实就可以理解为一种数据文件,里面的数据是以键值对的方式存储的.java中map就是键值对的形式,我们带着这个概念去理解.举个例子: school ...
- java中文件的上传和下载:文件上传和下载原理
在TCP/IP中,我们知道最早的上传机制为FTP,它是指将文件由客户端发送到服务器的标准机制.然而我们在jsp编程中不能使用FTP来上传文件,这是由于jsp运行机制决定的. ...
- Java中的与、或、非以及异或( | ~ ^)运算符的运算原理
首先,我们要知道Java存储数据是保存的补码,如果对原码.反码以及补码不太懂,可以参考我的另一篇博客. 1. Java的 与( & ) 运算 所有的逻辑运算都是按位计算的,所以第一步就是先把数 ...
- java中rtsp转m3u8_NGINX+ffmpeg 实现 大华摄像头视屏转流RTSP转RTMP或M3U8
一.准备 1.环境: windows 2.开发工具: ffmpeg.nginx(代理服务器)nginx-rmtp-module(nginx服务器的流媒体插件).vlc(兼容性播放器) 3.原理: ng ...
- java中判断字段真实长度(中文2个字符,英文1个字符)的方法
public class Char_cn { public static void main(String[] args) { // TODO Auto-generated method s ...
- java中split时,需要转义的几个字符
split() 方法根据匹配给定的正则表达式来拆分字符串. 注意: . . $.+ .| . * 等转义字符,必须得加 \. 注意:多个分隔符,可以用 | 作为连字符.
最新文章
- Deepin ROMS 安装详细流程
- php原码初级自定义数据库操作方法
- 恒位油杯故障原因_油烟机经常出现小故障,小固教你维修方法,学会之后省老钱了!...
- cannot connect to vCenter Single Sign-on server...
- OpenCV图像处理——copyTo与mask(掩码)操作
- bs4之标签树的下行遍历
- 利用js实现popup弹窗
- ROS机器人程序设计(原书第2版)3.4 设置动态参数
- Python框架篇之Django(Models的多表操作)
- Spring Security 入门(1-3-2)Spring Security - http元素 - intercept-url配置
- 第八届“图灵杯”NEUQ-ACM程序设计竞赛个人赛——L题 建立火车站
- 设计自己的基于Selenium 的自动化测试框架-Java版(3) - 给框架分分层
- 小白如何快速学会C++?
- 判断web app是否从主屏启动
- Linux查询命令帮助语句,linux有关命令的帮助和用法查看
- 如何下载Chrome历史版本
- 学习阮一峰老师-互联网协议笔记(IP/UDP/TCP/HTTP)
- 4 卷积的拉普拉斯变换
- python项目源码 日程管理_怎么用python写作息时间安排呢?
- Android:手机号码归属地查询
热门文章
- 【Markdown】Markdown插入图片的完美解决方法
- 这4款神级软件 最好用的软件
- debian 11 apt 安装软件报错:Media change: please insert the disc labeled
- EMC测试仪器_新能源汽车EMC测试—HPK高压耦合器测试系统
- Matlab做一个刚体运动仿真,模拟小车避障
- 从零开始学习大数据系列之Linux-02Vim与Shell script
- 卫星影像领域的深度学习数据和模型项目
- 非上市公司股权激励方案(珍藏版)
- 基于vspd DLL二次开发的虚拟串口工具
- 鹏业云计价i20(四川)CJZ阅读模式功能