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