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

Reply via email to