public static List<String> readKeys(final String data,
                                        final List<String> keys) throws IOException {
        if (NullSafe.hasItems(keys) && NullSafe.isNonBlankString(data)) {
            // Meta keys come from headers so should be ascii, and thus we don't have to
            // worry about multibyte 'chars' and other such oddities.
            try (Stream<String> linesStream = data.lines()) {
                return readKeys(keys, linesStream);
            }
        } else {
            return Collections.emptyList();
        }
    }
For when you just want the value for one or more keys.
Saves having to de-serialise the whole file to an {@link AttributeMap}.

@param data The {@link String} to extract values from.
@param keys The keys to find values for. Assumed to be already trimmed.
@return A list of values using the same indexing as the supplied keys. The length of the
returned list will always match that of the supplied keys list.
stroom-meta/stroom-meta-api/src/main/java/stroom/meta/api/AttributeMapUtil.java