当前位置: 首页 > 面试题库 >

Bufferedwriter有效,但是文件为空?

封永嘉
2023-03-14
问题内容

我有以下代码:

CSVmaker(LinkedList data) {
    String [] myLines = makeStrings(data);
  //  for (int k = 0; k<myLines.length; k++)
  //  System.out.println(myLines[]);




    this.file = new File("rawdata.csv");
        try {
            BufferedWriter buff = new BufferedWriter(new FileWriter(file));
            for (int i = 0; i<myLines.length; i++){
                buff.write(myLines[i]);
                buff.newLine();
                System.out.println("done");
            }
        } catch (IOException ex) {
          System.out.println("except");
        }



}

不,我检查了myLines的内容,这些是正确的。

另外,我得到的印刷品会尽可能频繁地打印“完成”。csv已创建。

但是,如果我手动打开它,它是空的。

这可能是什么原因?


问题答案:

您从不刷新缓冲区或关闭BufferedWriter。

在for循环之后,进行以下调用:

buff.flush();
buff.close();

即使有其他资源,在完成后关闭它们也是一个好主意。



 类似资料:
  • 问题内容: 这是代码片段。 编辑:我正在从目录中读取文件。因此,我需要在每个循环中打开阅读器。我进行了一些修改,但同时也没有写入该文件。这是代码: 编辑:我修改了代码,但没有成功, 而且我收到此错误: 编辑:谢谢..我想通了。实际上,我在eclipse中创建了一个目录,但没有刷新它来查看内容。真是太傻了…还是非常感谢 问题答案: 您正在循环内创建FileWritter,因此您将始终在每个循环中截断

  • 问题内容: 我必须从用户那里获取用户的名称和地址,并将其放入文本文件中。我写以下代码: 当我运行代码时,它需要用户输入,但文本文件为空。地址和名称未写入文本文件。如何在上面的代码中将名称和地址存储到文本文件中。 问题答案: 您创建的,但从来没有或它。 这些操作是实际写入文件的操作 正如@ManoDestra在注释中指出的那样,Java支持statement,它允许您将语句的格式设置为: 由于实现了

  • 问题内容: 我一直在Spring Security + Webflux中使用ReactiveAuthenticationManager。它是经过自定义的,以返回一个实例,从该实例中我可以确定是调用时应接收的内容。据我所知,我无法通过两种方式访问​​身份验证上下文: 要么 尝试从控制器或组件访问这些文件将解决。对于我是否真的要在自定义管理器中返回实例,我有些疑问,好像我是: 和的实例在哪里扩展 有趣

  • 试图从控制器或组件访问这些代码将解析为。我有些怀疑我是否真的在自定义管理器中返回了实例,看起来我是: 其中是和扩展的实例 有趣的是,尽管不能在控制器中工作,但我可以将身份验证主体与注释作为方法参数成功地注入控制器中。 这似乎是一个配置问题,但我不知道在哪里。有人知道为什么我不能返回身份验证吗?

  • 问题内容: 因此,我正在使用 BufferedWriter, 并希望将一些文本写入文本文件。 由于某种原因,正在创建文本文档,但是没有写入任何文本,这是为什么呢? 问题答案: 您需要关闭或使用

  • 我写了一个php脚本,它产生一个ics文件输出: BEGIN:VCALENDAR PRODID:-//hacksw/handcal//NONSGML v1.0//EN VERSION:2.0 BEGIN:VEVENT DTSTAMP:20120801000000z DTSTART:20120801000000z DTEND:20120801000000z 摘要:测试 组织者:Me UID:Me E