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简单讲解 的相关文章

  • Seam 和 Mock 有什么区别?

    自从我使用 java 遗留代码以来已经有几个月了 这是我正在处理的一些事情 0 测试覆盖率 巨大的函数有时我什至看到有的代码超过300行 许多私有方法 有时还有静态方法 高度紧密耦合的代码 一开始我很困惑 我发现在遗留系统中使用TDD很难
  • BaseAdapter 和 Picasso 问题

    我在使用 Picasso 从服务器加载 ListView 中的图像时遇到问题 我有一个 BaseAdapter 用于填充我的 ListView 在此 ListView 中 有些项目有图像 有些则没有 在这个方法中 public View g
  • 缩放 JCheckBox 框

    我想扩展一个JCheckBox例如等于其设置文本的字体大小 例如当我增加Font大小复选框本身很小 但它应该随着文本而增长 或者我想自己设置框的大小 JCheckBox chckbxTest new JCheckBox Test chckb
  • 忽略标有特定注释的属性

    我有 ObjectMapper 实例 ObjectMapper mapper new ObjectMapper 在运行时想要序列化类的实例 程序不知道什么类 它是参数化类型 T 的对象实例 如何忽略标记指定注释 javax persiste
  • 如何使用斯坦福TokensRegex?

    我正在尝试使用斯坦福大学TokensRegex 但是 我在匹配器行中遇到错误 请参阅注释 它说 请尽力帮助我 下面是我的代码 String file A store has many branches A manager may manag
  • Maven 忽略的 uniqueVersion 标记

    我正在尝试做一些我认为很简单的事情 出于空间考虑 停止创建快照构建的独特版本 所以我用这个设置我的 pom
  • 如何读取文件,将数据放入JTable中,然后修改单元格/删除行并将数据保存到文件中? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我需要从 txt 文件中读取日期并将其放入 GUI 中的 JTable 中 然后修改一些记录或删除一些行并将新数据保存到文件中 我可以
  • iText - 将内容添加到现有页面的底部

    我想向 PDF 文件的每一页添加一段文本 这个答案在SO https stackoverflow com questions 3335126 itext add content to existing pdf file工作正常 但是 文本被
  • 如何在MyBatis foreach中迭代HashMap?

    我正在尝试在 mybatis 中生成如下所示的 sql SELECT COL C FROM TBLE 1 WHERE COL A COL B in kp kar srt sach 而我的输入参数类型是HashMap 现在如何从映射器 xml
  • 如何使用泛型而不是注释来实现构建器类?

    我想写一个通用的建造者阶级它包装任何 java 类并提供特定样式的 setter 函数 我不确定这是否可以称为 动态生成的函数 当我有一个豆子般的 Pojo 课时 即 class Pojo public void setValue int
  • 下载图像后,我想重定向到另一个页面,但无法

    HttpServletResponse 响应 抛出 ServletException IOException URL url new URL http www avajava com images avajavalogo jpg Syste
  • 有没有更快的方法来输出PDF文件?

    这是一段将PDF文件输出到浏览器的代码 可以更快吗 这是在 Java servlet 中实现的 private ByteArrayOutputStream getByteArrayOutputStreamFromFile File file
  • 具有自定义资源解析器的 Java XML 模式验证器无法解析元素

    Java XML 模式验证 ResourceResolver 问题 我正在尝试在 Web 应用程序中构建一个组件 该组件将根据一组模式验证不同的 XML 文档 我在 java 包 com example xml 中有验证器类 然后有一个用于
  • Java - 使用数组中的值的replace()方法正在更改数组值?

    我正在做类似的事情 public static String list a b c d It gives me a NullPointeException if I didn t use static public String encry
  • 具有特定协议版本的 SSL 连接

    我正在尝试使用特定协议版本执行 SSL 连接 使用以下 JAVA 代码 System out println Locating socket factory for SSL SSLSocketFactory sslsocketfactory
  • 如何在 Graphics2D 中制作像素完美的 Line2D

    你好 我有 JPanel 上面有一些 Line2D 对象 问题是当我画这条线时 它并没有按照我想要的方式显示 线条不流畅 很难用文字解释 所以我发布了一张图片 缩放区域 如何让它们看起来更光滑而不是有皱纹 Thanks 问题可能是您的图形上
  • 如何在java中创建.mpp文件?

    我能够创造 mpx文件通过使用mpxjjava 中的库 我需要编写 创建 mppjava中的文件任何人都可以建议我please 我维护 MPXJ 对您的询问的简短回答是 目前 MPXJ 不写入 MPP 文件 造成这种情况的主要原因很简单 尽
  • 关于嵌套 Java try/finally 代码三明治的建议

    我想要一些关于我遇到的技术的建议 通过查看代码片段可以很容易地理解它 但我在以下段落中对其进行了更多记录 使用 代码三明治 习惯用法来处理资源管理是很常见的 习惯了 C 的 RAII 习惯用法后 我转而使用 Java 发现异常安全的资源管理
  • 将图像 X,Y 坐标转换为经度和纬度?

    我设置了特定静态地图图像的最小经度和纬度值 该地图图像是某个国家的一部分 Maximum longitude value of the map private float mapLongitudeMax Minimum longitude
  • 使用依赖项的资源?

    在我的 Maven 项目中 有一个模块 核心 为其类提供了一些资源 当在模块内运行类时 它能够获取自己的资源 一切正常 当另一个依赖于核心的模块尝试运行该类时 就会出现问题 Java在其中寻找资源的文件夹是这个模块 而不是核心模块 所以这门

随机推荐

  • 【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类将一个常量值作为默认缓冲区的大小 它同时也可以