如何使用 OutputStream 模拟虚拟文件对象以传递给 CSVWRITE?
How to emulate a virtual File object using an OutputStream for passing to CSVWRITE?
我有一个 OutputStream
想要写入一些数据。它实际上是一个CipherOutputStream
。我想使用 CSVWRITE
将 H2 表导出到流中。
然而 CSVWRITE
只需要一个文件名(即 String
)。所以我想模拟一个虚拟文件对象,它使用像 memoryFile://foo
这样的 URI 打开,它实际上写入 OutputStream
,我可以将其作为 URI 传递给 CSVWRITE
。可能吗?
不是纯粹的Java方式,不。
如果您使用的是 *NIX 系统,您可以创建命名管道并在其中写入输出。然后你可以有一个从管道读取、加密和写入具体文件的程序。
也可以使用 Writer
ResultSet rs = ...
Writer writer = new OutputStreamWriter(outputStream, StandardCharsets.UTF_8);
val csv = new Csv();
int row = csv.write(writer, rs);
我有一个 OutputStream
想要写入一些数据。它实际上是一个CipherOutputStream
。我想使用 CSVWRITE
将 H2 表导出到流中。
然而 CSVWRITE
只需要一个文件名(即 String
)。所以我想模拟一个虚拟文件对象,它使用像 memoryFile://foo
这样的 URI 打开,它实际上写入 OutputStream
,我可以将其作为 URI 传递给 CSVWRITE
。可能吗?
不是纯粹的Java方式,不。
如果您使用的是 *NIX 系统,您可以创建命名管道并在其中写入输出。然后你可以有一个从管道读取、加密和写入具体文件的程序。
也可以使用 Writer
ResultSet rs = ...
Writer writer = new OutputStreamWriter(outputStream, StandardCharsets.UTF_8);
val csv = new Csv();
int row = csv.write(writer, rs);