java - 如何读取InputStream中间的偏移量?

标签 java byte inputstream fileinputstream

这是我的文件 C://test.txt 组成 ACBDE FGHIJ

我想从F一直读到J。 所以输出是FGHIJ。我将如何在使用偏移量读取的 InputStream 中做到这一点。 这是我的部分实现。

InputStream is = null;
byte[] buffer = null;
char c;

try {
    is = new FileInputStream("D://test.txt");
    buffer = new byte[is.available()];
    System.out.println("Characters printed:");
    is.read(buffer, 5, 5);
    for (byte b : buffer) {

        if (b == 0)
            // if b is empty
            c = '-';
        else
            c = (char) b;

        System.out.print(c);
        }
} catch (Exception e) {
    e.printStackTrace();
} finally {
    if (is != null)
        is.close();
}

请帮助我解决我的问题:D

最佳答案

offset read()的参数是缓冲区的偏移量,而不是文件的偏移量。您正在寻找的是seek()方法,后跟 read()偏移量为零。

注意,这是 available() 的典型滥用。 。请参阅 Javadoc。有一个特定的警告,反对将其用作输入流的长度。

关于java - 如何读取InputStream中间的偏移量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34938528/

相关文章:

java - android notification pendingintent onNewintent 未调用

java - 我的 NFC 扫描应用程序仅在 NFC 类型 2 时启动

java将字符串数据映射到python中的字典

java - 分离持久字段和派生字段

ios - 从字节中获取位的值 | swift 5

c# 处理来自 mysql 查询的空字节数组

r - 将千字节,兆字节等转换为R中的字节

java - 从 POJO 读取 persistence.xml

java - 如何在 Java ME 中将 StringBuffer 转换为 InputStream?

java - 在 Java 中缓冲 inputStream 时出现奇怪的 IOException