public static void write(File f, Object obj) {
        if (null == f || null == obj)
            return;
        if (f.isDirectory())
            throw Lang.makeThrow("Directory '%s' can not be write as File", f);

        try {
            // 保证文件存在
            if (!f.exists())
                Files.createNewFile(f);
            // 输入流
            if (obj instanceof InputStream) {
                Streams.writeAndClose(Streams.fileOut(f), (InputStream) obj);
            }
            // 字节数组
            else if (obj instanceof byte[]) {
                Streams.writeAndClose(Streams.fileOut(f), (byte[]) obj);
            }
            // 文本输入流
            else if (obj instanceof Reader) {
                Streams.writeAndClose(Streams.fileOutw(f), (Reader) obj);
            }
            // 其他对象
            else {
                Streams.writeAndClose(Streams.fileOutw(f), obj.toString());
            }
        }
        catch (IOException e) {
            throw Lang.wrapThrow(e);
        }
    }

    /**
     * 将内容写到一个文件末尾
     * <ul>
     * <li>InputStream - 按二进制方式写入
     * <li>byte[] - 按二进制方式写入
     * <li>Reader - 按 UTF-8 方式写入
     * <li>其他对象被 toString() 后按照 UTF-8 方式写入
     * </ul>
     * 
     * @param f
     *            文件
     * @param obj
     *            内容
     */
    public static void appendWrite(File f, Object obj) {
        if (null == f || null == obj)
            return;
        if (f.isDirectory())
            throw Lang.makeThrow("Directory '%s' can not be write as File", f);

        try {
            // 保证文件存在
            if (!f.exists())
                Files.createNewFile(f);
            // 输入流
            if (obj instanceof InputStream) {
                // TODO
                throw Lang.noImplement();
            }
            // 字节数组
            else if (obj instanceof byte[]) {
                // TODO
                throw Lang.noImplement();
            }
            // 文本输入流
            else if (obj instanceof Reader) {
                // TODO
                throw Lang.noImplement();
            }
            // 其他对象
            else {
                Streams.appendWriteAndClose(f, obj.toString());
            }
        }
        catch (IOException e) {
            throw Lang.wrapThrow(e);
        }
    }
public static void write(File f, Object obj) {
        if (null == f || null == obj)
            return;
        if (f.isDirectory())
            throw Lang.makeThrow("Directory '%s' can not be write as File", f);

        try {
            
            if (!f.exists())
                Files.createNewFile(f);
            
            if (obj instanceof InputStream) {
                Streams.writeAndClose(Streams.fileOut(f), (InputStream) obj);
            }
            
            else if (obj instanceof byte[]) {
                Streams.writeAndClose(Streams.fileOut(f), (byte[]) obj);
            }
            
            else if (obj instanceof Reader) {
                Streams.writeAndClose(Streams.fileOutw(f), (Reader) obj);
            }
            
            else {
                Streams.writeAndClose(Streams.fileOutw(f), obj.toString());
            }
        }
        catch (IOException e) {
            throw Lang.wrapThrow(e);
        }
    }

    
    public static void appendWrite(File f, Object obj) {
        if (null == f || null == obj)
            return;
        if (f.isDirectory())
            throw Lang.makeThrow("Directory '%s' can not be write as File", f);

        try {
            
            if (!f.exists())
                Files.createNewFile(f);
            
            if (obj instanceof InputStream) {
                
                throw Lang.noImplement();
            }
            
            else if (obj instanceof byte[]) {
                
                throw Lang.noImplement();
            }
            
            else if (obj instanceof Reader) {
                
                throw Lang.noImplement();
            }
            
            else {
                Streams.appendWriteAndClose(f, obj.toString());
            }
        }
        catch (IOException e) {
            throw Lang.wrapThrow(e);
        }
    }
public static void write ( File f , Object obj ) { if ( null == f || null == obj ) return ; if ( f . isDirectory ( ) ) throw Lang . makeThrow ( "Directory '%s' can not be write as File" , f ) ; try { // 保证文件存在
 if ( ! f . exists ( ) ) Files . createNewFile ( f ) ; // 输入流
 if ( obj instanceof InputStream ) { Streams . writeAndClose ( Streams . fileOut ( f ) , ( InputStream ) obj ) ; } // 字节数组
 else if ( obj instanceof byte [ ] ) { Streams . writeAndClose ( Streams . fileOut ( ) , ( byte [ ] ) obj ) ; } // 文本输入流
 else if ( obj instanceof Reader ) { Streams . writeAndClose ( Streams . fileOutw ( ) , ( Reader ) obj ) ; } // 其他对象
 else { Streams . writeAndClose ( Streams . fileOutw ( ) , obj . toString ( ) ) ; } } catch ( IOException ) { throw Lang . wrapThrow ( ) ; } } /**
     * 将内容写到一个文件末尾
     * <ul>
     * <li>InputStream - 按二进制方式写入
     * <li>byte[] - 按二进制方式写入
     * <li>Reader - 按 UTF-8 方式写入
     * <li>其他对象被 toString() 后按照 UTF-8 方式写入
     * </ul>
     * 
     * @param f
     *            文件
     * @param obj
     *            内容
     */ public static void appendWrite ( File , Object obj ) { if ( null == || null == obj ) return ; if ( . isDirectory ( ) ) throw Lang . makeThrow ( " Directory ' % s ' can not write as File " , ) ; try { // 保证文件存在
 if ( ! . exists ( ) ) Files . createNewFile ( ) ; // 输入流
 if ( obj instanceof InputStream ) { // TODO
 throw Lang . noImplement ( ) ; } // 字节数组
 else if ( obj instanceof byte [ ] ) { // TODO
 throw Lang . noImplement ( ) ; } // 文本输入流
 else if ( obj instanceof Reader ) { // TODO
 throw Lang . noImplement ( ) ; } // 其他对象
 else { Streams . appendWriteAndClose ( f , obj . toString ( ) ) ; } } catch ( IOException e ) { throw Lang . wrapThrow ( e ) ; } }
将内容写到一个文件内，内容对象可以是：

<ul>
<li>InputStream - 按二进制方式写入
<li>byte[] - 按二进制方式写入
<li>Reader - 按 UTF-8 方式写入
<li>其他对象被 toString() 后按照 UTF-8 方式写入
</ul>

@param f
文件
@param obj
内容
将内容写到一个文件内，内容对象可以是：