public byte[] readNextFile() throws IOException {
        if(this.lastHeader == null) {
            throw new RuntimeException("Must first read a new header");
        }

        int fileSize = this.lastHeader.getFileSize();

        // Read a complete File entry
        byte[] fileContent = new byte[fileSize];

        if(fileContent.length > 0) {

            int length = Util.readBlocking(fileContent, inputStream);
            int remainder = length % 512;
            if(remainder > 0) {
                Util.readBlocking(new byte[512-remainder], inputStream);
            }
        }

        this.lastHeader = null;
        return fileContent;
    }