Manejo de Archivos en Java


Clase para el manejo de archivos en Java, además permite configurar a un prepared Stament un archivo.

class Archivo {
 
     private java.io.File f = null;
 
     private char m = 0;
 
     private String fn = "";
 
     private boolean tr = false;
 
     public Archivo( String filename , char modo , boolean trace  ){
          fn = filename;
          m = modo;
          tr = trace;
     }
 
     private void event(String txt){
         if (tr) System.out.println(txt);
     }
 
 
     private java.io.FileWriter fw = null;
     private java.io.BufferedWriter bw = null;
     private java.io.PrintWriter salida = null;
     private java.io.BufferedReader entrada = null;
 
     public boolean abrir() throws Exception {
 
         if ( m=='r' ){
             f = new java.io.File( fn );
             java.io.FileReader fr = new java.io.FileReader(f);
             entrada = new java.io.BufferedReader(fr);
 
             if ( f.canRead() ){
                 event(fn + " está abierto");
                 return true;
             } else {
                 event(fn + " no se pudo abrir");
                 return false;
             }
         } else {
             if (m=='w'){
                     fw = new java.io.FileWriter(fn);
                    bw = new java.io.BufferedWriter(fw);
                    salida = new java.io.PrintWriter(bw);
                    event(fn + " ha sido creado o re-escrito");
                    return true;
             } else {
                 event("Modo no valido");
                 return false;
             }
         }
 
     }
 
     public boolean renombrar(String b) throws Exception  {
         java.io.File r = new java.io.File(fn);
         boolean resp = r.renameTo( new java.io.File(b) );
         if (resp)
            event(fn + " ha sido renombrado a " + b);
         else
            event(fn + " no pudo ser renonmbrado a " + b);
         return resp;
     }
 
     public String leer()throws Exception  {
        return entrada.readLine();
     }
 
     public static java.sql.PreparedStatement setPreparedStatement( java.sql.PreparedStatement ps
                                                                       , int posicion
                                                                       , String fln ) throws Exception {
 
         java.io.File mf = new java.io.File(fln);
         java.io.FileInputStream str = new java.io.FileInputStream(mf);
         ps.setBinaryStream(posicion, str, (int) mf.length());
         return ps;
     }
 
     public java.io.FileInputStream obtenerFlujo() throws Exception {
         return  new java.io.FileInputStream(f);
     }
 
     public void escribir( String texto ) throws Exception {
         salida.print(texto);
     }
 
     public void cerrar(){
         try {
         if ( m=='r' ){
             f = null;
         } else {
             if (m=='w'){
                 salida.close();
                 fw.close();
                 bw.close();
                 salida = null;
                 fw = null;
                 bw = null;
             } else {
             }
         }
         }catch(Exception e){
             event(e.toString());
         }
     }
}
 
class Main {
    public static void main(String[] args) throws Exception {
        Archivo f = new Archivo("c:\\a.txt",'w',true);
        f.abrir();
            f.escribir("hola Mundo!");
        f.cerrar();
        f.renombrar("c:\\temp\\proc~a.txt");
 
            //java.sql.PreparedStatement ps = getConection...
            //ps = Archivo.setPreparedStatement(ps, 1, "c:\\temp\\proc~a.txt");
 
    }
}