X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Futils%2FIOUtils.java;h=3d252eac126df091a7fa8abf55999d95af6f288f;hb=0013f760d69fd7db2b298c3da5d89bc0b102eabf;hp=e7ab4033a8e15933ee6b38673a57efb6f074feb6;hpb=c60b070de7344284b8467ebe3653447b58df5a6c;p=fanfix.git diff --git a/src/be/nikiroo/utils/IOUtils.java b/src/be/nikiroo/utils/IOUtils.java index e7ab403..3d252ea 100644 --- a/src/be/nikiroo/utils/IOUtils.java +++ b/src/be/nikiroo/utils/IOUtils.java @@ -29,13 +29,15 @@ public class IOUtils { * @param target * the target {@link File} * + * @return the number of bytes written + * * @throws IOException * in case of I/O error */ - public static void write(InputStream in, File target) throws IOException { + public static long write(InputStream in, File target) throws IOException { OutputStream out = new FileOutputStream(target); try { - write(in, out); + return write(in, out); } finally { out.close(); } @@ -49,17 +51,23 @@ public class IOUtils { * @param out * the target {@link OutputStream} * + * @return the number of bytes written + * * @throws IOException * in case of I/O error */ - public static void write(InputStream in, OutputStream out) + public static long write(InputStream in, OutputStream out) throws IOException { + long written = 0; byte buffer[] = new byte[4096]; int len = in.read(buffer); while (len > -1) { out.write(buffer, 0, len); + written += len; len = in.read(buffer); } + + return written; } /** @@ -362,13 +370,30 @@ public class IOUtils { return errorAcc; } + /** + * Open the resource next to the given {@link Class}. + * + * @param location + * the location where to look for the resource + * @param name + * the resource name (only the filename, no path) + * + * @return the opened resource if found, NULL if not + */ + public static InputStream openResource( + @SuppressWarnings("rawtypes") Class location, String name) { + String loc = location.getName().replace(".", "/") + .replaceAll("/[^/]*$", "/"); + return openResource(loc + name); + } + /** * Open the given /-separated resource (from the binary root). * * @param name - * the resource name + * the resource name (the full path, with "/" as separator) * - * @return the opened resource if found, NLL if not + * @return the opened resource if found, NULL if not */ public static InputStream openResource(String name) { ClassLoader loader = IOUtils.class.getClassLoader();