X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Futils%2FCache.java;h=779b194f5cc66f0e706865e360c6a7b992344f9d;hb=59654e2ab1f6d3314eff438bf9e30ed6f32e5e74;hp=ce33592ed3a4419cee1a6553908cae8621bfefd8;hpb=05c4f401056abe16517a0b0d1ccb5841fa3dfcbb;p=fanfix.git diff --git a/src/be/nikiroo/utils/Cache.java b/src/be/nikiroo/utils/Cache.java index ce33592..779b194 100644 --- a/src/be/nikiroo/utils/Cache.java +++ b/src/be/nikiroo/utils/Cache.java @@ -1,13 +1,14 @@ package be.nikiroo.utils; import java.io.File; -import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.net.URL; import java.util.Date; +import be.nikiroo.utils.streams.MarkableFileInputStream; + /** * A generic cache system, with special support for {@link URL}s. *

@@ -263,7 +264,7 @@ public class Cache { if (cached.exists() && cached.isFile() && (allowTooOld || !isOld(cached, stable))) { try { - return new MarkableFileInputStream(new FileInputStream(cached)); + return new MarkableFileInputStream(cached); } catch (FileNotFoundException e) { return null; } @@ -280,13 +281,15 @@ public class Cache { * @param uniqueID * a unique ID used to locate the cached resource * + * @return the number of bytes written + * * @throws IOException * in case of I/O error */ - public void save(InputStream in, String uniqueID) throws IOException { + public long save(InputStream in, String uniqueID) throws IOException { File cached = getCached(uniqueID); cached.getParentFile().mkdirs(); - save(in, cached); + return save(in, cached); } /** @@ -297,12 +300,14 @@ public class Cache { * @param url * the {@link URL} used to locate the cached resource * + * @return the number of bytes written + * * @throws IOException * in case of I/O error */ - public void save(InputStream in, URL url) throws IOException { + public long save(InputStream in, URL url) throws IOException { File cached = getCached(url); - save(in, cached); + return save(in, cached); } /** @@ -315,13 +320,16 @@ public class Cache { * @param cached * the cached {@link File} to save to * + * @return the number of bytes written + * * @throws IOException * in case of I/O error */ - private void save(InputStream in, File cached) throws IOException { + private long save(InputStream in, File cached) throws IOException { // We delete AFTER so not to remove the subdir we will use... - IOUtils.write(in, cached); + long bytes = IOUtils.write(in, cached); clean(true, dir, 10); + return bytes; } /**