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

  • 从 Spring 服务器请求获取字符串主体

    我试图从请求正文中获取简单的字符串 但不断收到错误 Handler RestController public class GreetingHandler public Mono
  • UML 中的组合

    在 UML 图中考虑组合时 我们应该在逻辑或实现意义上使用它 这两个术语的示例 实施 机场将包含对国家 地区的引用 换句话说 一个国家是机场的一部分 逻辑 一个国家可以有零个或多个机场 换句话说 机场是国家的一部分 从上图中 哪种情况显示了
  • Java从受限层调用方法

    我什至不确定这是否可行 但我想询问社区的总体意见 我必须解决以下问题 我的项目有 2 层 一个核心层和一个业务层 该核心层提供业务层 这时候Business类就可以导入Core类 为所欲为了 核心类只能导入核心类并使用其方法 禁止访问业务类
  • Java Web 应用程序的关闭钩子

    我需要在 java web 应用程序停止或 tomcat 停止时保存一些数据 如何才能做到这一点 编辑 如果我使用 jvm shutdown hook 有什么缺点吗 使用一个实现的类ServletContextListener https
  • 在Java中,如何在TextArea中使用多线程?我需要同步我的线程吗?

    我对 Java 和多线程缺乏经验 所以也许你们可以提供帮助 当我使用多线程时 我在打印 TextArea 框中的一系列数字和字母时遇到问题 这是我的代码 public class MultiThread extends Applicatio
  • 使用 Java 打开 Arduino 上的 LED

    我安装了 Java 串行 RXTX 库并正确设置了 Arduino 我什至已经启动并运行了示例代码 但我似乎无法理解如何访问不同的 Arduino 引脚以打开 LED 等 如何使用 OutputStream 或任何其他方式访问引脚 我是否需
  • 在 ant 中定义 Main-Class 来捆绑 jar 的混乱

    我正在尝试使用 Amazon Mechanical Turk API 构建一个 jar 文件 SDK 附带了一个 helloworld 文件 我试图将其打包作为健全性检查 它位于此处 http aws amazon com code SDK
  • 在资源控制器内使用多个服务的最佳方法是什么?

    我有一个调用三个服务的控制器 public class ProductController Autowired private AccountService accountService Autowired private ProcessS
  • 杰克逊没有认识到存在的领域

    这是我的 JSON totalSize 46 done true records Name Wamu I Start Date c 2016 09 26T16 56 10 000 0000 Status c Completed Type c
  • 在 MacOS 命令行上使用 Android Studio 内置 Java

    这里有很多关于在 Mac 上安装 Java 以及让 Android Studio 使用正确版本的信息 很多已经过时 但是最近版本的 Android Studio 2 2 及更高版本 提供了自己的 Java 对于大多数 Mac 用户来说 没有
  • 如何在运行时创建对象?

    我需要在运行时创建一个类的多个不同对象 这个数字也是在运行时确定的 就像我们在运行时得到 int no o objects 10 一样 然后我需要实例化一个类10次 Thanks 阅读Java 教程中的数组 http java sun co
  • 使用文件服务 URL 从 blobstore 删除文件

    在我的应用程序 GAE 上的 GWT 中 我们将存储在 blobstore 上的服务 URL 存储在数据库中 当用户选择这些文件之一并单击 删除 时 我们需要从 blobstore 中删除该文件 这是我们的代码 但它根本没有删除文件 pub
  • Java并发hashMap检索

    ConcurrentHashMap文档说 检索操作 包括 get 通常不会阻塞 因此可能与更新操作 包括 put 和 remove 重叠 检索反映了最近完成的更新操作在其开始时的结果 更正式地说 给定键的更新操作与报告更新值的该键的任何 非
  • Spring Boot,JPA 错误:“通过 JDBC 语句执行 DDL 时出错”

    我正在尝试使用一个非常基本的 到目前为止 Spring Boot 应用程序在我的 MySQL 数据库中添加一个条目 我使用了在网上找到的一些零碎内容 这是我试图遵循的代码 netgloo spring boot samples spring
  • 替换 Apache POI XWPF 中的文本

    我刚刚发现 Apache POI 库对于使用 Java 编辑 Word 文件非常有用 具体来说 我想编辑一个DOCX使用 Apache POI 的 XWPF 类的文件 我发现没有合适的方法 文档可以执行此操作 有人可以分步骤解释一下如何替换
  • “?” 是什么意思?在Java中是什么意思? [复制]

    这个问题在这里已经有答案了 我不知道问号是什么 在java中代表 我正在做一个小程序 一个Nim游戏 正在寻找一本书寻求帮助 并看到这样的说法 int pinsToTake min gt 2 2 1 看不懂 什么会 代表 它可能与 if 语
  • SonarQube 不会通过 Gradle 显示每个文件的完全覆盖类的详细报告

    我正在 IntelliJ Java IDE 中运行 Gradle 构建 这SonarQube 跑步者 http www gradle org docs current userguide sonar runner plugin htmlGr
  • 优化xstream的加载速度

    当我尝试从 XML 文件执行加载时 我感觉 xstream 加载速度达不到我的要求 为了 一个有 10k 条目的 数据库 需要几分钟 以下是我用来序列化的整个数据结构 列表的大小 符号和代码 将为 大约 10k 条目 有什么方法我可以尝试
  • 为什么我无法初始化 Map? [复制]

    这个问题在这里已经有答案了 我想存储一组int String值 但是ints 不一定是增量的 这意味着数据可以是 lt 1 first gt lt 3 second gt lt 9 third gt 所以我正在尝试创建与Dictionary
  • 如何限制匿名子类的创建(Java)

    抱歉 我之前没有正确表述这个问题 我尝试实现工厂模式 一个更好的例子 它是一个带有 create 函数的抽象类 Human 根据创建时传递的参数 它决定是返回其子类 Man 的实例还是返回 Woman 子类的实例 因此 您可以使用以下命令调

随机推荐

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