跳过ByteArray Java中的字节

时间:2015-06-15 09:58:04

标签: java png bytearray skip

我的应用程序读取类似png的文件(以字节为单位)并将字节存储到byteArray中。 这是我使用的方法:

public static byte[] read(File file) throws IOException {

        byte []buffer = new byte[(int) file.length()];
        InputStream ios = null;
        try {
            ios = new FileInputStream(file);
            if ( ios.read(buffer) == -1 ) {
                throw new IOException("EOF reached while trying to read the whole file");
            }        
        } finally { 
            try {
                 if ( ios != null ) 
                      ios.close();
            } catch ( IOException e) {
            }
        }

        return buffer;
    }

之后,我想提取该byteArray的模式。

它遵循png文件的模式:
4个字节长度+ 4个字节类型+数据(可选)+ CRC并重复该方案。

我想做一些事情:读取长度+类型。如果我对该类型不感兴趣,我想跳过那个块。 但是我很难挣扎,因为我找不到任何用于byteArray []的跳过方法

有没有人知道如何继续?

2 个答案:

答案 0 :(得分:2)

您是否尝试过使用ByteArrayInputStream http://docs.oracle.com/javase/7/docs/api/java/io/ByteArrayInputStream.html?有跳过方法

答案 1 :(得分:0)

如果你想用一段时间迭代数组,你需要跳过给定条件下的下一次迭代,你可以使用标签继续跳到循环的下一次迭代。

语法如下:

do {
    if (condition) {
        continue;
    }
    // more code here that will only run if the condition is false
} while(whatever you use to iterate over your array);