【问题标题】:Simple Java Byte Input Stream简单的 Java 字节输入流
【发布时间】:2019-10-10 15:48:11
【问题描述】:

我目前正在写一篇比较 I/O 和 NIO 速度的论文。 为此,我需要一个简单的 InputStream,它一次可以读取 1 个字节。 FileInputStream 用于加载整个文件,我需要它来加载另一部分。但是我想不出一种简单的方法来加载一个又一个字节,就像我可以使用整数扫描仪那样。一旦我到达我想要阅读的字节,我就可以停止阅读。 要读取的字节是随机生成的,所以没有字符或任何花哨的东西。

这是一个如此愚蠢的用例吗(我知道它在边缘很漂亮),它不存在吗?

问候

【问题讨论】:

  • InputStream#readInputStream 一次读取1 字节。
  • 我刚刚意识到,为什么我认为它不起作用,控制台中的输出是无符号的,而 RandomAccessFiles 是有符号的,结果偶尔会有所不同。感谢您的快速帮助。
  • 当您想比较性能时,这也可能对您有所帮助/阅读:How do I write a correct micro-benchmark in Java?
  • 'FileInputStream 用于读取整个文件':是的,或者它的任何前缀到一个字节。不清楚你在问什么。

标签: java io inputstream


【解决方案1】:
import java.io.IOException;
import java.io.InputStream;
import java.util.concurrent.ThreadLocalRandom;

public class MyInputSream extends InputStream {
    @Override
    public int read() throws IOException {
        return ThreadLocalRandom.current().nextInt(0, 0x100);
    }
}

【讨论】:

    猜你喜欢
    • 2011-05-15
    • 2011-11-07
    • 2011-08-04
    • 2011-08-27
    • 2018-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多