import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
-import java.util.stream.Stream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
/**
- * This class offer some utilities based around {@link Stream}s.
+ * This class offer some utilities based around Streams.
*
* @author niki
*/
*
* @param in
* the data source
- * @param target
+ * @param out
* the target {@link OutputStream}
*
* @throws IOException
* the source {@link File} (which can be a directory)
* @param dest
* the destination <tt>.zip</tt> file
- * @param srctIsRoot
+ * @param srcIsRoot
* FALSE if we need to add a {@link ZipEntry} for src, TRUE to
* add it at the root of the ZIP
*
* the target to delete
*/
public static void deltree(File target) {
- for (File file : target.listFiles()) {
- if (file.isDirectory()) {
+ File[] files = target.listFiles();
+ if (files != null) {
+ for (File file : files) {
deltree(file);
- } else {
- if (!file.delete()) {
- System.err.println("Cannot delete file: "
- + file.getAbsolutePath());
- }
}
}
if (!target.delete()) {
- System.err.println("Cannot delete file: "
- + target.getAbsolutePath());
+ System.err.println("Cannot delete: " + target.getAbsolutePath());
}
}
+
+ /**
+ * Open the given /-separated resource (from the binary root).
+ *
+ * @param name
+ * the resource name
+ *
+ * @return the opened resource if found, NLL if not
+ */
+ public static InputStream openResource(String name) {
+ ClassLoader loader = IOUtils.class.getClassLoader();
+ if (loader == null) {
+ loader = ClassLoader.getSystemClassLoader();
+ }
+
+ return loader.getResourceAsStream(name);
+ }
}