* @param <V> the type of class
* @return an object
*/
public static <V> V load(File file, Class<V> cls, boolean returnNull) {
ByteSource source = Files.asByteSource(file);
ByteSink sink = new MkdirByteSink(Files.asByteSink(file), file.getParentFile());
Scrambled scrambled = cls.getAnnotation(Scrambled.class);
if (cls.getAnnotation(Scrambled.class) != null) {
source = new ScramblingSourceFilter(source, scrambled.value());
sink = new ScramblingSinkFilter(sink, scrambled.value());