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)、字符(输入、输出)流原理解析)相关推荐

  1. java中判断字符串实际长度(中文2个字符,英文1个字符)的方法,包含中英文符号

    java中判断字符串实际长度(中文2个字符,英文1个字符)的方法,包含中英文符号 介绍 数据库中很多字段都会限制长度,为了方便用户使用,在前端界面给出限制长度的提示,看网上很多写的获取字符串长度都没有 ...

  2. 浮点数0.7在Java中是无法精确存储的,却为何能精确输出0.7

    2019独角兽企业重金招聘Python工程师标准>>> 这是在其他地方看到的一个提问,提问原文链接:https://www.oschina.net/question/2346828_ ...

  3. Java中2.5D游戏的设计与实现(3)—八方走法实现原理及相关代码

    Java中2.5D游戏的设计与实现(3)-八方走法实现原理及相关代码 2.5D游戏,虽然在外观上近似于3D游戏,却又不是严格意义上讲的3D游戏,故此2.5D游戏又常被称为[伪3D游戏]. 在笔者的观念 ...

  4. Java中的基本数据类型讲解(数值型、字符型、布尔型)

    数据类型 数据类型的分类 分为 基本数据类型和引用数据类型 基本数据类型 基本数据类型分为数值型.字符型和布尔类型 数值型 数值型分为整数型和浮点型(小数型) 整数型 包含:int. short. b ...

  5. java中snakeyaml工具包操作yaml文件,什么是yaml文件,yaml如何解析转换为实体,实体如何生成yaml文件

    什么是yaml文件 这里就不去搞yaml的书面意思了,其实就可以理解为一种数据文件,里面的数据是以键值对的方式存储的.java中map就是键值对的形式,我们带着这个概念去理解.举个例子: school ...

  6. java中文件的上传和下载:文件上传和下载原理

    在TCP/IP中,我们知道最早的上传机制为FTP,它是指将文件由客户端发送到服务器的标准机制.然而我们在jsp编程中不能使用FTP来上传文件,这是由于jsp运行机制决定的.               ...

  7. Java中的与、或、非以及异或( | ~ ^)运算符的运算原理

    首先,我们要知道Java存储数据是保存的补码,如果对原码.反码以及补码不太懂,可以参考我的另一篇博客. 1. Java的 与( & ) 运算 所有的逻辑运算都是按位计算的,所以第一步就是先把数 ...

  8. java中rtsp转m3u8_NGINX+ffmpeg 实现 大华摄像头视屏转流RTSP转RTMP或M3U8

    一.准备 1.环境: windows 2.开发工具: ffmpeg.nginx(代理服务器)nginx-rmtp-module(nginx服务器的流媒体插件).vlc(兼容性播放器) 3.原理: ng ...

  9. java中判断字段真实长度(中文2个字符,英文1个字符)的方法

    public class Char_cn {    public static void main(String[] args) {   // TODO Auto-generated method s ...

  10. java中split时,需要转义的几个字符

    split() 方法根据匹配给定的正则表达式来拆分字符串. 注意: . . $.+ .| . * 等转义字符,必须得加 \. 注意:多个分隔符,可以用 | 作为连字符.

最新文章

  1. Deepin ROMS 安装详细流程
  2. php原码初级自定义数据库操作方法
  3. 恒位油杯故障原因_油烟机经常出现小故障,小固教你维修方法,学会之后省老钱了!...
  4. cannot connect to vCenter Single Sign-on server...
  5. OpenCV图像处理——copyTo与mask(掩码)操作
  6. bs4之标签树的下行遍历
  7. 利用js实现popup弹窗
  8. ROS机器人程序设计(原书第2版)3.4 设置动态参数
  9. Python框架篇之Django(Models的多表操作)
  10. Spring Security 入门(1-3-2)Spring Security - http元素 - intercept-url配置
  11. 第八届“图灵杯”NEUQ-ACM程序设计竞赛个人赛——L题 建立火车站
  12. 设计自己的基于Selenium 的自动化测试框架-Java版(3) - 给框架分分层
  13. 小白如何快速学会C++?
  14. 判断web app是否从主屏启动
  15. Linux查询命令帮助语句,linux有关命令的帮助和用法查看
  16. 如何下载Chrome历史版本
  17. 学习阮一峰老师-互联网协议笔记(IP/UDP/TCP/HTTP)
  18. 4 卷积的拉普拉斯变换
  19. python项目源码 日程管理_怎么用python写作息时间安排呢?
  20. Android:手机号码归属地查询

热门文章

  1. 【Markdown】Markdown插入图片的完美解决方法
  2. 这4款神级软件 最好用的软件
  3. debian 11 apt 安装软件报错:Media change: please insert the disc labeled
  4. EMC测试仪器_新能源汽车EMC测试—HPK高压耦合器测试系统
  5. Matlab做一个刚体运动仿真,模拟小车避障
  6. 从零开始学习大数据系列之Linux-02Vim与Shell script
  7. 卫星影像领域的深度学习数据和模型项目
  8. 非上市公司股权激励方案(珍藏版)
  9. 基于vspd DLL二次开发的虚拟串口工具
  10. 鹏业云计价i20(四川)CJZ阅读模式功能