加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-14 19:16:29 所属栏目:Java 来源:网络整理
导读:我正在使用一个专有的Java库,将其数据直接保存到java.io.File中,但我需要能够读取数据,以便直接进行流式处理.数据是二进制的,一些媒体文件. java.io.File作为参数传递给这个库,但我不知道如何从中获取流.有没有一些简单的方法来做到这一点,除了打开文件也读

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

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

我希望跳过写入文件系统部分,因为我从applet使用它,在这种情况下需要额外的权限.

最佳答案
如果程序的一部分正在写入文件,那么您应该能够使用另一个线程中的普通新FileInputStream(someFile)流从该文件中读取,尽管这取决于操作系统对此类操作的支持.您不需要同步任何东西.现在,您受输出流的支配以及程序的写入部分调用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,readN);
        System.out.print("Read: " + Arrays.toString(sub) + "n");
    }
    Thread.sleep(100);
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读