gpt4 book ai didi

java - 在写入文件时从文件中读取数据

转载 作者:搜寻专家 更新时间:2023-10-31 20:15:15 25 4
gpt4 key购买 nike

我正在使用一个专有的 Java 库,该库将其数据直接保存到 java.io.File 中,但我需要能够读取数据以便直接流式传输。数据是二进制的,一些媒体文件。

java.io.File 作为参数传递给这个库,但我不知道有什么方法可以从中获取流。有没有一些简单的方法可以做到这一点,除了打开文件也用于读取和尝试同步读/写操作!?

最好我想跳过写入文件系统的部分,因为我是从小程序使用它的,在这种情况下需要额外的权限。

最佳答案

如果您的程序的一部分正在写入文件,那么您应该能够在另一个线程中使用普通的 new FileInputStream(someFile) 流从该文件中读取,尽管这取决于操作系统支持对于这样的 Action 。你不需要同步任何东西。现在,您受制于输出流以及程序的写入部分调用 flush() 的频率,因此可能会有延迟。

这是一个 little test program我写的证明它工作正常。阅读部分只是在一个循环中,看起来像这样:

FileInputStream input = new FileInputStream(file);
while (!Thread.currentThread().isInterrupted()) {
byte[] bytes = new byte[1024];
int readN = input.read(bytes);
if (readN > 0) {
byte[] sub = ArrayUtils.subarray(bytes, 0, readN);
System.out.print("Read: " + Arrays.toString(sub) + "\n");
}
Thread.sleep(100);
}

关于java - 在写入文件时从文件中读取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7912307/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com