Randomaccesfile

Páginas: 5 (1045 palabras) Publicado: 28 de octubre de 2012
Java: La clase RandomAccessFile
La clase RamdonAccessFile nos permite acceder de forma aleatorio a un archivo, tanto para realizar lecturas como escrituras. Además soporta el concepto de puntero que indica la posición actual dentro del archivo. El puntero es un entero que empieza en 0 (principio del archivo) y se mide en bytes. Al comienzo del archivo se denota con BOF y el final delfichero con EOF.

Adicionalmente, para abrir un fichero con RandomAcessFile, a parte del nombre del archivo, debemos indicar el modo, ya que usamos el mismo objeto para leer y escribir. Los modos posibles son:
* r: Archivo de sólo lectura.
* rw: Archivo de lectura y escritura.
* w: Archivo de sólo escritura.

Esta clase permite ver un archivo como un arreglo de caracteres y leero escribir zonas del arreglo. Como lo indica la siguiente figura, cada caracter se subindica mediante un índice.

La característica más interesante de esta clase que es que nos permite movernos a una posición determinada del fichero, con el método seek().
RandomAccessFile oFile = new RandomAccessFile ("Data.dat", "rw");
String sCadena = "Acceso aleatorio";
oFile.seek(oFile.length());oFile..writeBytes(sCadena);
oFile.close();
La operación writeUTF escribe un string agregando dos caracteres extras en donde se codifica el largo del string. Además se avanza el puntero de modo que la próxima escritura no altere lo que se acaba de escribir: 

Del mismo modo, la operación readUTF determina el largo del string que se va a leer a partir de los dos primeros bytes (desde laposición actual):

File (Archivo)
 La clase file (archivo) de la biblioteca de entrada salida de Java, proporciona una abstracción independiente de la plataforma para obtener información sobre un archivo, tales como, su ruta, carácter de separación, tamaño y fecha. Para ello debe crear un objeto File con alguno de los siguientes constructores.
File arch = new File(String ruta);
File arch= new File(String ruta, String nombre,);
File arch = new File(String dir, String nombre,);
Para saber si un archivo existe podemos utilizar el siguiente código
File f = new File(“temp.txt”);
if(f.exists())
System.out.println(“El archivo temp.txt, si existe”);
else
System.out.println(“El archivo temp.txt, no existe”);
Separación en fichas (tokens)
Al leer una línea, hay vecesque es necesario partir la cadena en piezas especificas (conocidas como tokens). Para esto utilizaremos la clase StringTokenizer. Los constructores para esta case son:
StringTokenizer(String cadena, String delim, bolean devoverTokens);
StringTokenizer(String cadena, String delim);
StringTokenizer(String cadena);
Con estos constructores podemos hacer la separación de los elementos de unacadena de la siguiente manera.
StringTokenizer st = new StringTokenizer(“1001 Tips de Java”, “ “);
while(st.hasMoreTokens())
{
System.out.println(“token:” + st.nextToken());
}
Método que nos permita leer de un archivo los valores de una matriz
public Matriz(String archivo) {
String linea = "", dato = "";
int i = 0, j = 0;
StringTokenizer st;
double x;Dimensiones(archivo) ;
datos = new double[nren][ncol];
try {
RandomAccessFile DIS = new RandomAccessFile(archivo, "r");
i = 0;
while ( ( (linea = DIS.readLine()) != null) && i < nren) {
st = new StringTokenizer(linea);
if(st.countTokens() != 0)
{
st = new StringTokenizer(linea);
for (j = 0; j < ncol; j++){
dato = st.nextToken();
x = Double.valueOf(dato).doubleValue();
this.datos[i][j] = x;
}
i++;
}
}
DIS.close();
}
catch (IOException e) {
JOptionPane.showMessageDialog(null, "Error" + e.toString(),
"ERROR", JOptionPane.ERROR_MESSAGE);
}
}...
Leer documento completo

Regístrate para leer el documento completo.

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS