我有一个BufferedWriter
如下图所示:
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(
new GZIPOutputStream( hdfs.create(filepath, true ))));
String line = "text";
writer.write(line);
我想找出写入文件的字节而无需查询文件
hdfs = FileSystem.get( new URI( "hdfs://localhost:8020" ), configuration );
filepath = new Path("path");
hdfs.getFileStatus(filepath).getLen();
因为这会增加开销,但我不希望这样。
我也不能这样做:
line.getBytes().length;
因为它在压缩前给出大小。
您可以使用Apache commons
IO库中的CountingOutputStream。
将其放在GZIPOutputStream和文件Outputstream(hdfs.create(..))之间。
将内容写入文件后,您可以从CountingOutputStream实例读取写入的字节数。
问题内容: 我必须从用户那里获取用户的名称和地址,并将其放入文本文件中。我写以下代码: 当我运行代码时,它需要用户输入,但文本文件为空。地址和名称未写入文本文件。如何在上面的代码中将名称和地址存储到文本文件中。 问题答案: 您创建的,但从来没有或它。 这些操作是实际写入文件的操作 正如@ManoDestra在注释中指出的那样,Java支持statement,它允许您将语句的格式设置为: 由于实现了
问题内容: 因此,我正在使用 BufferedWriter, 并希望将一些文本写入文本文件。 由于某种原因,正在创建文本文档,但是没有写入任何文本,这是为什么呢? 问题答案: 您需要关闭或使用
问题内容: 我正在做一个实验,我们必须读取一个外部文件,对数据进行一些统计,然后使用统计信息创建和写入新文件。除了编写文件,程序中的所有内容都可以正常工作,我无法理解为什么我的方法不起作用。 问题答案: 您必须冲洗并关闭编写器:
问题内容: 这是代码片段。 编辑:我正在从目录中读取文件。因此,我需要在每个循环中打开阅读器。我进行了一些修改,但同时也没有写入该文件。这是代码: 编辑:我修改了代码,但没有成功, 而且我收到此错误: 编辑:谢谢..我想通了。实际上,我在eclipse中创建了一个目录,但没有刷新它来查看内容。真是太傻了…还是非常感谢 问题答案: 您正在循环内创建FileWritter,因此您将始终在每个循环中截断
问题内容: 我在python中遇到以下问题。 我需要并行执行一些计算,这些计算的结果需要按顺序写入文件中。因此,我创建了一个函数,该函数接收和文件句柄,进行计算并将结果打印到文件中: 但是脚本运行后文件最终为空。我试图将worker()函数更改为: 并将文件名作为参数传递。然后它按我的预期工作。当我尝试按顺序执行相同的操作而不进行多处理时,它也可以正常工作。 为什么它在第一个版本中不起作用?我看不
我想访问服务器B上只能通过服务器a访问的远程文件夹。我在两台机器上都有帐户。 要访问B上的终端,我首先通过ssh连接到A,然后跳转到B。要使用B上的端口,我也会这样做,通过ssh隧道建立端口映射。 但是,要使用fish之类的协议从图形文件管理器(如dolphin)访问B上的文件夹,我该怎么做?如何建立中间连接? 我尝试了一种间接的方法,从本地主机:端口到中间机器,从中间机器到目标机器,并连接到fi