Código:
Por alguna razón no puedo darle un valor a posBuffer, salvo 0, que sería escribir desde el inicio. Tengo días viendo ejemplos en internet y todos se limitan a decir eso, que escribe desde "n" posición y nada, si doy un número positivo me marca un error (excepción) de outofbounds...public int escribir (byte nombreArchivo[], byte buffer[], int cant, int posBuffer){
int edo=0;
try{
String nom="";
RandomAccessFile archivo=null;
File arch=null;
nom=new String(nombreArchivo,0,nombreArchivo.length);
arch=new File(nom+".txt");
if(arch.exists()){
System.out.print("Se editará el fichero "+nom);
archivo=new RandomAccessFile(nom+".txt","rw");
archivo.seek(archivo.length());//nos ubicamos siempre al final del archivo para no reescribir
archivo.write(buffer,posBuffer,cant);//Escribe "can" bytes del arreglo de bytes "buffer" iniciando desde "posBuffer" del buffer. NO SE PUEDE POSBUFFER
}
else edo=-1;
archivo.close();
}catch(FileNotFoundException f){edo=-1;}
catch(NullPointerException f){edo=-1;}
catch (IOException e) {edo=-2;}
return edo;
}
Otra duda que tengo es, ¿se puede crear un archivo de sólo lectura, pero sin contener nada (es decir en blanco o vacío)? tengo esta función pero me tira la excepción de que el archivo no existe (es decir sería el modo de acceso el que le asignaría...no?)
Código:
Gracias por su ayuda! public int crear(byte nombreArchivo[],int modo)throws IOException{
int edo=0;String mod;
if (modo==1)mod="r";
else mod="rw";
try{
String nom="";
RandomAccessFile archivo=null;
nom=new String(nombreArchivo,0,nombreArchivo.length);
System.out.print("Se creará un archivo llamado "+nom);
archivo=new RandomAccessFile(nom+".txt",mod);
archivo.close();
}catch(FileNotFoundException f){edo=-1;}
catch (IOException e) {edo=-2;}
catch(IndexOutOfBoundsException e){edo=-2;}
return edo;
}


