On 09/16/2009 10:20 AM, Joel Kamentz wrote:
It's more for I/O, not general Object, but some methods which I almost ALWAYS use in a project are null-safe canonicalization and null-safe close methods.
Yeah I think that these would belong in an I/O package. That said...
static File canonical(File f) { if (f == null) return null; try { return f.getCanonicalFile(); } catch (IOException e) { return f.getAbsoluteFile(); } }
No comment, other than to check out the NIO list archives and/or the current source tree which may already allow you to do this.
static void close(Reader s) { if (s == null) return; try { s.close(); } catch (IOException e) {} }
These would be better written as a single "close(Closeable c)". Also, swallowing the exception is the wrong thing to do; at the very least it should be logged.
... repeat for other stream types as necessary, like ZipFile, RandomAccessFile, etc. because no common inheritance
These *should* all be fixed now to implement Closeable IIRC.
Delete files or sub-trees, catching exceptions and instead just return success / failure. Copy an InputStream to an OutputStream with supplied byte buffer (or allocate one internally). General file (or stream or ?) copying utility methods might be useful.
Definitely in the I/O realm, ask Alan on the NIO list. The delete thing might already be done :)
- DML