JAVA BufferedWriter简单讲解

2023-10-26

JAVA缓冲流(BufferedWriter)简单讲解
BufferedWriter类是Writer的子类,它为了提高效率,加入了缓冲技术,将字符读取对象作为参数。
BufferedWriter类将一个常量值作为默认缓冲区的大小,它同时也可以通过构造函数来指定大小。
提供了newLine()方法,它使用自己的行分隔符概念,它是由系统自带的属性line.separator定义,并非使用换行符来终止行.

writer会立即将其输出发送到基础字符或字节流,所以在使用BufferedWriter来包装writer的子类可以提高输出的效率

BufferedWriter类中的方法都返回void,write()方法,写入字符串的某一部分,flush()方法刷新该流的缓存。

import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.IOException;
//缓冲区的出现是为了提高流的操作效率而出现的
//所以在创建缓冲区之前,必须先要有流对象
public class BufferedWriterDemo{
	public static void main(String[] args) throws IOException{
	//在这里抛一个IO异常,才能运行
	FileWriter fr =new FileWriter(“E:/buf1.txt”);//创建一个读取流对象和文件相关联
	bufferedWriter bufw = new buffereWriter(fw);//创建buffereWriter类对象
	For(int x=1;x<9;x++){
	  Bufw.write(“abcd”+x);
	  Bufw.newLine();
	  Bufw.flush();
	}
	Bufw.flush();//刷新
	Bufw.clase();//关闭缓冲区
}
}

缓冲区的出现是为了提高流的操作效率而出现的,所以在创建缓冲区之前,必须先要有流对象。

为了提高字符写入流的效率,加入的缓冲技术,在对象里面封装了数组,只要将需要被提高效率的流对象作为参数传递给缓冲区的构造函数即可,记住只要用到缓冲区就要刷新。关闭缓冲区,其实关闭缓冲区就是在关闭缓冲区中的流对象。

在使用bufferedWriter类的write()方法时,数据并没有立刻写入输入流,而是首先进入缓存区中,如果想立刻将缓存区中的数据写入输出流,一定要调用flush()方法。
BufferedWriter在创建类对象时,循环变量数组,将字符串数组中的元素写入到磁盘文件中,将数组中的单个元素以单行的形式写入文件,最后将bufferedWriter流刷新一下,如果刷新那么在最后的保存中将无法保存至buf1.txt中,注意这里bufferedWriter也是需要关闭流的,所以我们加上流关闭方法

在这里插入图片描述
执行成功后,可以发现(我的是E盘)E盘中出现了一个叫buf1.txt的文件,这个文件就是刚刚执行后的文件,打开该文件我们可以看见一共有8行,因为已经定义了它的长度,所以它只能是8行,当然你可以把x<9改一下,将它的大小修改一下,那么它在新增行的时候又会加进几行。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JAVA BufferedWriter简单讲解 的相关文章

  • Java Swing 组件中的 HTML 标签

    向 Swing 组件 例如 JLabels 添加 HTML 标签是否会使 JFrame 的渲染速度变慢 我的意思是 Swing 组件中 HTML 渲染的性能如何 是的 这取决于你的 html 的复杂程度 实际上 当你的 jlabel 中有
  • 如何解决 @CucumberOptions 中格式选项的弃用问题?

    当我使用该选项时format in CucumberOptions对于测试报告 它显示格式选项已被弃用 如何解决该问题 CucumberOptions monochrome true format html target cucumber
  • 如何为一系列任务设计执行引擎

    我正在尝试用 Java 编写一个问题 我必须执行一堆任务 Problem 执行由多个任务组成的作业 并且这些任务之间具有依赖关系 一个作业将有一个任务列表 每个这样的任务将进一步有一个后续任务列表 每个后续任务将有自己的后续任务 您可以在此
  • Spring @Autowired 用于 setter 方法与非 setter 方法

    根据 Autowired javadoc https docs spring io spring docs current javadoc api org springframework beans factory annotation A
  • 单元测试应该默认使用“抛出异常”吗?

    换句话说 我应该附加throws Exception我的所有或大部分单元测试 当您使用 Android Studio 生成单元测试 命令 N gt 测试方法 时 它默认添加抛出异常 前任 Test public void someMetho
  • 添加新数据源(mysql)wildfly

    我正在尝试将新的数据源 mysql jdbc 驱动程序添加到我的 Wildfly 服务器 我创建了文件夹 wildfly x x x modules system layers base com mysql main 我这里有 jdbc j
  • 为家庭作业选择 Java IDE [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 谁能推荐一个轻量级的 Java IDE 不需要您每次编译和运行程序时都创建新项目 我只想能够打开jav
  • JDBC 连接池选项:DBCP 与 C3P0 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 适用于 Java JDBC 的最佳连接池库是什么 我正在考虑两个主要候选者 免费 开源 阿帕奇 DBC
  • Querydsl 在查询中设置获取模式

    我遇到的情况是 卡实体具有人员的外键 public class Card implements java io Serializable private String cardid private Person person ManyToO
  • .Net 与 Java 垃圾收集器

    有谁知道 Java 和 Net 垃圾收集器之间的主要区别 网上搜索并没有透露太多信息 这是一个测试中出现的问题 区别在于 CLR Net GC 和 JVM GC 之间 而不是语言本身 两者都可能发生变化 并且其行为规范宽松 允许在不影响程序
  • JPQL 和联接表

    我对 SQL 和 JPQL 的理解不是很好 我一直在尝试创建以下 sql 语句的 JPQL 查询 select group from user user group group where user group user id user i
  • 错误:SPAN_EXCLUSIVE_EXCLUSIVE 跨度的长度不能为零

    我的 Android 应用程序出现问题 我有一个按钮和一个关联的事件 但是当我第一次单击时出现错误 跨度不能有零长度 但是当我第二次单击时 事件 onclick 运行良好 看看我的java代码 public class MainActivi
  • 使用 spring data jpa 更新单个字段

    我正在使用 spring data 的存储库 非常方便 但我遇到了一个问题 我可以轻松更新整个实体 但我相信当我只需要更新单个字段时这是毫无意义的 Entity Table schema processors name ear attach
  • Spring Cloud 配置服务器无法使用本地属性文件

    我一直在玩弄位于此处的 github 上的 Spring Cloud 项目 https github com spring cloud spring cloud config https github com spring cloud sp
  • 如何打印HttpResponse返回的消息?

    我的 Android 手机上有此代码 URI uri new URI url HttpPost post new HttpPost uri HttpClient client new DefaultHttpClient HttpRespon
  • 如何使用 nimbus-jose-jwt 解码 JWT 令牌以获取标头和有效负载的详细信息?

    我有以下内容JWT 令牌我想解码 eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsing1dCI6Ik5UQXhabU14TkRNeVpEZzNNVFUxWkdNME16RXpPREpoWldJNE5ETmxaRFU
  • MultipartFile 文件名中的特殊字符转换为?在春季启动

    我想知道为什么 spring boot 将 MultiPartFile 文件名特殊字符转换为 例如 pdf 转换为 pdf 我需要配置 Spring 来禁用此行为吗 我已经检查了我的 jvm 配置中的 file encoding 它已经设置
  • Java If(false) 编译

    我正在使用 Tomcat 开发一个动态 Web 项目 有一个全局标志很有用 这是我在开发服务器和部署服务器之间唯一需要更改的东西 该标志的最大用途是与打印语句一起使用 public class Debug public final stat
  • 如何使用日历类获取一个月中的所有日期?

    在这里我想显示日期 2013 01 01 2013 01 02 2013 01 03 etc 我可以获得一个月的总天数 private int getDaysInMonth int month int year Calendar cal C
  • 局部变量隐藏字段是什么意思?

    所以这只是我代码的一部分 整个程序编译并运行 但我不断在以 GameBoard myBoard this getGameBoard 开头的三行旁边看到 局部变量隐藏字段 我 我只是好奇这实际上意味着什么 以及从长远来看它是否对我的程序有任何

随机推荐

  • 【Java进阶】多线程&高并发(一)<线程概述>

    一 线程相关概念 1 进程 进程 process 是计算机中的程序关于某数据集合上的一次运行活动 是操作系统进行资源分配与调度的基本单位 进程可以简单理解为正在操作系统中运行的一个程序 2 线程 线程 thread 是进程的一个执行单元 一
  • qt自定义带参数的构造函数(构造函数传参)

    源文件 h中 class Test public QMainWindow Q OBJECT public explicit Test QString path QWidget parent 0 构造函数有默认值的要放右边 新添加的参数需要放
  • 《软件工程》第七章 实现 作业

    1 什么是模块测试和集成测试 它们各有什么特点 1 模块测试 指把每个模块作为一个单独的实体来测试 目的是发现模块内部可能存在的差错 保证每个模块作为一个单元能正确运行 所以又称单元测试 对多个模块的测试可以并发进行 在这个测试步骤中所发现
  • vscode安装go插件以及语言开发包

    vscode安装go插件及语言安装包过程 没有go环境和vscode的可以先安装go和vscode 接下来步骤主要通过vscode插件的方式安装go的插件以及语言开发包 vscode安装go插件 启动vscode选择插件 gt 搜go选择G
  • [分布式]:分布式系统的CAP理论

    2000年7月 加州大学伯克利分校的Eric Brewer教授在ACM PODC会议上提出CAP猜想 2年后 麻省理工学院的Seth Gilbert和Nancy Lynch从理论上证明了CAP 之后 CAP理论正式成为分布式计算领域的公认定
  • Latex(texlive)安装配置教程(详细)

    1 下载安装及打开方式 在浏览器里输入 texlive mirror 一般会找到清华大学的镜像网站 我这里是选择texlive2021 20210325 iso文件下载的 iso文件其实就像一个硬盘 下载好以后在你下载的目录双击打开这个is
  • 关于linux下android studio更新下载SDK和加速访问Github的方法

    文章参照以下的两篇文章 这里做一下总结 Linux中加速访问github zonyZhang 博客园 解决连不上dl google com的问题 简书 1 登录 dl google com A记录 cname检测结果 Dns查询 dns查询
  • 数据挖掘是如何解决问题的

    数据挖掘是如何解决问题的 本节通过几个数据挖掘实际案例来诠释如何通过数据挖掘解决商业中遇到的问题 2 1 1节中关于 啤酒和尿不湿 的故事是数据挖掘中最经典的案例 而Target公司通过 怀孕预测指数 来预测女顾客是否怀孕的案例也是近来为数
  • 一个完整的测试流程包括哪些?测试人员需要做什么?

    目录 前言 1 需求交接 2 编写测试用例 3 冒烟测试 4 SIT测试 5 数据升级测试 视情况而定 6 系统培训 视情况而定 7 UAT测试 8 上线 结语 前言 在实际工作中 其实很少有公司把一个完整的测试流程一步一步走下来 大多会执
  • win10,win11 下部署Vicuna-7B,Vicuna-13B模型,gpu cpu运行

    运行Vicuna 7B需要RAM gt 30GB或者14GB的显存 运行Vicuna 13B需要RAM gt 60GB或者28GB的显存 如果没有上面的硬件配置请绕行了 我笔记本有64G内存 两个都跑跑看 使用python3 9 当时转换1
  • 基于Tensorflow+SDD+Python人脸口罩识别系统(深度学习)含全部工程源码及模型+视频演示+图片数据集

    目录 前言 总体设计 系统整体结构图 系统流程图 运行环境 Python 环境 Anaconda 环境搭建 模块实现 1 数据预处理 2 模型构建及算法实现 3 模型生成 系统测试 1 训练准确率 2 运行结果 工程源代码下载 其它资料下载
  • String类型

    String类对象的创建 字符串声明 String stringName 字符串创建 stringName new String 字符串常量 或stringName 字符串常量 String类构造方法 1 public String 无参构
  • JIRA数据迁移到不同服务器及升级(7.1.4升级到7.3.4)

    JIRA SoftWare 官网有关备份 恢复JIRASoftware系统数据文档 071版本 https confluence atlassian com adminjiraserver071 backing up data 802592
  • STP原理

    STP生成树是针对于二层网络优化技术 主要的作用是为了冗余和防止环路的产生 STP的作用 逻辑上断开链路 防止网络风暴的产生 当线路故障的时候 阻塞接口被激活 恢复通信 BID 网桥ID BID 优先级 MAC地址 交换机默认优先级为327
  • 曲线平滑算法:三次Hermite曲线生成

    目录 1 三次Hermite曲线的参数方程 2 三次Hermite曲线的绘制 Hermite曲线是通过给定曲线的两个端点的位置矢量 以及两个端点处的切线矢量 来描述曲线的 如图1所示 这里先对Hermite曲线进行数学公式推导 然后讲述如何
  • 使用Vue Router来实现单页面应用(SPA)的导航和路由管理

    文章目录 安装和配置Vue Router 在项目的主文件 通常是main js 中导入和配置Vue 定义和配置路由 路由参数 嵌套路由 导航守卫 下一篇 Vue Router最佳实践 敬请期待 创作者 全栈弄潮儿 个人主页 全栈弄潮儿的个人
  • python 列表的删除

    1 删除列表中的元素使用remove 函数 示例 代码 fruit a b c d e fruit remove a print fruit 结果 2 使用del关键字来声明 代码 fruit a b c d e del fruit 0 2
  • hx711称重程序讲解_称重传感器是什么?PLC如何连接?怎样使用才能最精确?

    原创不易 请勿抄袭 重量是生活中一个重要的单位 那么在工业上它更是非常重要 生产环节中加了多少公斤的原料 产生了多少公斤的废品等等等等 这些数据都是支撑着整个工厂良好运行的必要元素 那么在工业上如何计算重量呢 我们需要使用称重传感器 称重传
  • 【转】Oracle性能调整的误区

    Oracle性能调整的误区 http tech it168 com db o 2006 07 03 200607031305157 shtml 为了提高性能 我们针对Oracle数据库本身提供了的方法或方案进行过不少的尝试 主要包括 共享服
  • JAVA BufferedWriter简单讲解

    JAVA缓冲流 BufferedWriter 简单讲解 BufferedWriter类是Writer的子类 它为了提高效率 加入了缓冲技术 将字符读取对象作为参数 BufferedWriter类将一个常量值作为默认缓冲区的大小 它同时也可以