BufferedWriter在java中如何工作

2024-04-13

我经常将文本输出到文件中。我想知道一件事:怎么办BufferedWriterwork?

当我打电话时它会在文件中写入文本吗writer.write(text)? 如果不写文本,我需要使用flush函数来写数据吗?

例如:

       File file = new File("statistics.txt");
        if (!file.exists()) {
            file.createNewFile();
        }
        else
        {
            file.delete();
            file.createNewFile();
        }
        FileWriter fileWritter = new FileWriter(file.getAbsoluteFile(),true);
        BufferedWriter bufferWritter = new BufferedWriter(fileWritter);
        Iterator<Map.Entry<String,Token>> it = listofTakenPairMap.entrySet().iterator();
        int isim_isim=0;
        int isim_fiil=0;
        int zarf_fiil=0;
        while (it.hasNext()) {
            @SuppressWarnings("rawtypes")
            Map.Entry pairs = (Map.Entry)it.next();
            Token token=(Token)pairs.getValue();
            String str=pairs.getKey()+ " = " +token.getCount();
            if(token.getTypeOfPairofToken()==0){//isim-isim
                isim_isim+=token.getCount();
            }
            else if(token.getTypeOfPairofToken()==1){
                isim_fiil+=token.getCount();
            }
            else{ //zarf-fiil
                zarf_fiil+=token.getCount();
            }
            System.out.println(str);
            bufferWritter.write(str);
            bufferWritter.newLine();
            //it.remove(); // avoids a ConcurrentModificationException
        }
        bufferWritter.newLine();
        bufferWritter.write("##############################");
        bufferWritter.newLine();
        bufferWritter.write("$isim_isim sayisi :"+isim_isim+"$");
        bufferWritter.newLine();
        bufferWritter.write("$isim_fiil sayisi :"+isim_fiil+"$");
        bufferWritter.newLine();
        bufferWritter.write("$zarf_fiil sayisi :"+zarf_fiil+"$");
        bufferWritter.newLine();
        bufferWritter.write("##############################");
        bufferWritter.flush();
        bufferWritter.close();

如果 while 循环中发生错误,文件将被关闭而不写入数据。如果我使用flushwhile循环中的函数,那我为什么要使用BufferedWriter?如果我错了,请纠正我。


根据定义,缓冲写入器会缓冲数据,并且仅在内存足够时才写入数据,以避免与文件系统进行过多的往返。

如果您正确处理异常,并像往常一样在finally块中关闭流,缓冲区将被刷新到磁盘,并且到目前为止写入缓冲写入器的所有内容都将写入磁盘(当然,除非异常正是由于写入磁盘的错误引起的)。

因此,解决方案不是每次写入时都刷新,因为这会破坏缓冲写入器的目的。解决方案是在finally 块中关闭(或者使用Java 7 trye-with-resources 语句,它会为您完成此操作)。

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

BufferedWriter在java中如何工作 的相关文章

  • ModelMapper:匹配多个源属性层次结构

    我无法解决 modelMapper 错误 您知道问题出在哪里吗 注意 鉴于 java sql Time 没有无参构造函数 我没有找到比编写转换器更好的方法 org modelmapper ConfigurationException Mod
  • 搜索栏小部件未启动可搜索活动

    我正在尝试使用操作栏中的搜索栏小部件在我的 Android 应用程序上实现搜索 我正在关注 http developer android com guide topics search search dialog html http dev
  • 如何使用户输入与变量相关?

    我不知道如何准确地表达这个问题 但这就是我想要实现的目标 我正在使用堆栈实现河内塔插图 这是里面的main 功能 System out println Type the source pole number and the destinat
  • 访问注释中的属性值

    我想访问注释中的属性值 作为属性的值 对于前 在我的属性文件中 我有一个条目表达式 3 10 在我的 Scheduler 类中 我使用注释 Scheduled cron VALUE 我想从表达式键对应的属性文件中读取这个值 尝试这样做 Va
  • 从java程序调用SVN命令

    我想从 java 程序调用 SVN 命令 update commit 有什么帮助吗 SVN 乌龟SVN 环境 java程序将在jBoss服务器内运行 从应用程序服务器内使用 GUI SVN 客户端是一个非常非常糟糕的主意 而Tortoise
  • 如何将列表从控制器发送到百里香

    我需要将列表中存在的数据从我的 spring 控制器发送到 thymeleaf html 我如何发送数据 收到后如何迭代百里香中的数据 将您的清单放入您的ModelMap or ModelAndView对象然后使用遍历它th each在你的
  • 如何滚动到 div 元素底部 Selenium Webdriver

    我有一个用例 其中网页上有一个 div 元素 只要您单击链接 它就会出现一个弹出对话框 它不是实际的弹出窗口 它类似于当您单击链接进行检查时在 Facebook 中打开的对话框 对您的帖子的反应等 我使用 Selenium WebDrive
  • HttpServletRequest.getRemotePort() 在同一台机器上收到的每个 http 请求返回不同的端口?

    我需要识别注册到我的服务的客户端的远程 IP 和端口 此外 当客户端 Web 应用程序出现故障时 它会从我的 Web 服务中取消注册 我在用HttpServletRequest getRemoteAddress and HttpServle
  • 如何保护 Hibernate QBE 查询的安全

    目前 我知道四种使用 hibernate 进行事务处理的方式 使用对象 使用HQL 使用特定于数据库的 SQL 使用标准 QBE 好吧 关于它们对注射的抵抗力有多强 我认为是这些 如果我错了 请纠正我 安全 因为内部 SQL 调用是参数化的
  • 查看两个对象是否具有相同的类型

    假设我有一个类 A 并且 B C D 都是从 A 派生的 如果我想知道引用的对象的类型是什么 我可以声明 pseudo code if obj instanceof B lt is B gt else if obj instanceof C
  • 将 xml 传递给 jquery 脚本时出现问题

    我正在尝试使用 jsp 中的 bufferedReader 从本地路径读取 xml 并尝试将 xml 传递给 jquery 脚本 如下所示
  • 从 Get-ChildItem -Path 返回对象数组

    从 powershell 开始 ls R txt将按目录递归列出文件 或者更好 PS gt Get ChildItem Path C Test Name logs anotherfile txt Command txt CreateTest
  • jsoup 的奇怪编码行为

    我用jsoup从不同页面的html源代码中提取一些信息 大多数都是UTF 8编码的 其中一个是用 ISO 8859 1 编码的 这会导致一个奇怪的错误 在我看来 包含错误的页面是 http www gudi ch armbanduhr me
  • 一个在 Java 中进行 URL 查询字符串操作的好库 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我需要用 Java 进行一些非常简单的 URL 操作 就像获取查询中参数的值或更新它一样 我希望在 commons lang 包中找到一个
  • 如何将 try-with-resources 与 if 语句一起使用?

    我有简单的代码 try FileReader file new FileReader messageFilePath BufferedReader reader new BufferedReader file String line whi
  • 将自定义文件与我的 Android 应用程序关联

    我想将特定扩展名的文件 例如任何扩展名为 xyz 的文件 与我的应用程序关联 这意味着 当用户在文件资源管理器 或其他地方 如 gmail 驱动器等 中点击 SaveFile1 xyz 时 我的应用程序应该启动 并且文件的 Uri 将在 I
  • 在java中获取调用层次结构

    我在追踪错误时遇到了很大的困难 了解哪个方法调用了某个方法会很有帮助 有没有一种简单的方法可以从java获取调用层次结构 Java 是应用程序的一小部分 因此我无法在 eclipse net beans 中编译和运行整个应用程序 因此我无法
  • Spring Boot logback.xml 创建 .tmp 文件

    我正在尝试保留 Spring Boot 应用程序的日志 但是 由于生成的日志很大 我正在尝试使用 logback xml 将大于 350MB 的文件滚动到压缩文件中 我每天可以滚动几 MB 但中途服务开始写入临时文件 我已经尝试了 Time
  • 如何解决消息有效负载类型为:Mule 中的 BufferInputStream 异常

    我已经转换为字节数组 但我不断收到此错误 ERROR 2015 02 25 11 12 30 517 ESR HTTP Request Listener worker 01 org mule exception DefaultMessagi
  • Java 全屏模式对话框

    如何创建一个可用作内部对话框的自定义模式 JDialog 用于全屏独占模式 我有一个 JScrollPane 带有一个巨大的滚动条 里面充满了巨大的按钮 如下所示 FOO BAR BIZ

随机推荐

  • HSV三角形的公式

    不知道下面两个公式是怎么推导出来的 请解释一下 我的声望点太低了 没法去问写公式的人 C 中的 HSV 三角形 https stackoverflow com questions 42531608 hsv triangle in c sha
  • maven-checkstyle-plugin 无法在 macOS 上使用 google_checks.xml

    我有一个 Java Maven 项目 我在家里使用 Windows 构建并正确执行了 checkstyle 它使用内置规则集 但我也尝试了外部文件 查看相同的代码 pom xml 它似乎不适用于 macOS 奇怪的是如果我使用sun che
  • 如何使用 jQuery 选择没有特定类名的元素?

    像我这样的突击队怎么可能使用臭名昭著且功能强大的 jQuery Sizzle CSS 和其他所有东西 选择器来选择一个没有名为 active 的类的元素 我尝试过 a class active etc 但它没有给出足够的结果 a not a
  • OpenCV 中的相机标定和鸟瞰投影

    我已经完成了相机校准 现在我想获得棋盘图片的鸟瞰图 如下所示 但结果很奇怪 看起来不是一个正方形 你可以看到图3 每个正方形都是7 95x7 95 有人知道为什么吗 gpsPoints 0 Point2f gpsPoints 1 Point
  • 从 VS Code 终端 (Windows 10) 打开 VS Code 中的选定文件夹

    我一直在寻找 但在使用 VS Code 终端时找不到任何方法来打开 VS Code 中选定的文件夹 这可能吗 您是否尝试在集成终端所属的同一个 VSCode 实例中打开 Try code r
  • 从新的 Firebase 检索数据

    请帮忙 迁移到新的 Firebase 后 我无法检索数据 使用这个结构 let ref FIRDatabase database reference override func viewDidLoad super viewDidLoad r
  • Spring/Java 错误:命名空间元素“annotation-config”...在 JDK 1.5 及更高版本上

    我有 Spring Java 应用程序 它是用编译器合规级别 1 5 我下载了一个新的 Linux 设置阿帕奇汤姆猫 8 0 8 我下载了JDK 8u5 我在bash中设置的路径如下 PATH PATH HOME jdk1 8 0 05 b
  • 在Android中压缩带有大图像的pdf

    这个问题通过java压缩带有大图像的pdf https stackoverflow com questions 20614350 compress pdf with large images via java给出了在 Java 中使用 iT
  • 您可以同时使用 Protractor 和 Appium 来测试混合应用程序吗?

    这是我的场景 我有一个基于 Angular JS 构建的网站 我能够使用量角器使网站自动化 然而 在网站上执行的某些操作会反映在 Android 和 IOS 设备中 这就是我想要实现的目标 像平常一样在网站上运行我的测试 但我也想触发命令来
  • 如何通过 .NET 将图像插入 Access OLE 字段

    我有一个 Access mdb 数据库 我想从 Visual C 2010 开发的应用程序中插入图像 图片存储在数据库中的 OLE 对象字段中 直接在 Access 中添加图像后 它们将以位图图像的格式存储 双击这些图片即可在 Access
  • Cypress - 验证一列中的每个表行是否包含相同的项目

    我有一个表 但是某种由 DIV 创建的 ag grid 而不是真正的表元素 div div Name 1 div div 25 div div div div Name 1 div div 25 div div 我想验证每个字段是否带有co
  • 有谁知道 CVS 命令行选项来获取上次签入的详细信息?

    我在 Windows 上使用 CVS 带有 WinCVS 前端 并且希望在构建失败时将上次签入的详细信息添加到我们的自动构建过程中的电子邮件中 以便更容易修复 我需要知道已更改的文件 更改它们的用户以及评论 我一直在尝试制定命令行选项 但似
  • 来自 links-own 的参数值

    我需要帮助 所以我想将代理拥有的参数指定为链接拥有的参数值的平均值 frienships own strength household own influence factor to create influence if friendsh
  • 在 Rails 资产管道的 js.coffee 文件中使用 erb 时出错

    我有以下代码 assets javascripts home js coffee erb jQuery gt addClickListeners gt document on click add chord link addChord do
  • C IEEE-Floats inf 等于 inf

    在 C 中 在使用 IEEE 754 浮点数的实现中 当我比较两个 NaN 浮点数时 它返回 0 或 false 但是为什么两个都为 inf 的浮点数会被视为相等呢 该程序打印 equal 至少在带有 gcc 的 Linux AMD64 下
  • 使用 strtotime() 在 php 中计算相对日期

    我正在寻找一种可靠的方法来返回指定工作日 例如 星期一 的完整日期current week 由于今天是 2012 年 6 月 13 日星期三 我预计以导致2012 06 11 而是 php 返回2012 06 18好像它解释了本星期作为意义
  • 核心数据:3表连接?

    我知道 Core Data 不是数据库 有很多区别 是这个吗 在数据库中 我通常会有以下内容 A gt gt B gt gt C A 有很多 B B 有很多 C 查询 给我所有具有 c attr X 的 A 很容易写成 select fro
  • 关于 string.c_str() 生命周期

    我想知道是否void func const char str 参考有效的str如果我写如下 auto str string hello c str func str 它与下面的代码有何不同 func string hello c str 在
  • 查找数据集中所有点距离最近的点 - Python

    我有一个数据集如下 Id Latitude longitude 1 25 42 55 47 2 25 39 55 47 3 24 48 54 38 4 24 51 54 54 我想找到数据集每个点的最近距离 我在互联网上找到了以下距离函数
  • BufferedWriter在java中如何工作

    我经常将文本输出到文件中 我想知道一件事 怎么办BufferedWriterwork 当我打电话时它会在文件中写入文本吗writer write text 如果不写文本 我需要使用flush函数来写数据吗 例如 File file new