Java - StringTokenizer y Archivos

 
Vista:

StringTokenizer y Archivos

Publicado por Josue (7 intervenciones) el 06/01/2005 02:44:30
Hola, tengo un pequeño problema, resulta que he hecho una funcion que crea un archivo, y luego otra que trata de leerlo por medio de StringTokenizer, es decir leer los campor guardados, por ejemplo con la primera funcion creo un archivo asi nombre: tal edad: 17 sexo: M ; y con el otro leo los datos. Pero el problema surge cuando con otra funcion, a este archivo le agrega otros datos, cuando trato de leerlo de nuevo me dice "NoSuchElementException" y el archivo sigue normal y manteniendo el mismo formato... porque sera?
GRacias por sus comentarios
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 755
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

RE:StringTokenizer y Archivos

Publicado por Yamil Bracho (2315 intervenciones) el 06/01/2005 13:57:49
Quizas el metodo te esta generando campos en blanco y de los cuales StringTokenizer no maneja bien. Por ejemplo si te tiene que devolver tres campos, digamos que tu archivo es a;b;c y falta el b a;;c StringTokenizer te retorna dos.
Usa mas bien el metodo split() de la clase String que te retorna un arreglo de String si importar si no hay un campo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:StringTokenizer y Archivos

Publicado por Josue (7 intervenciones) el 07/01/2005 04:01:42
Hola, intente con split y me funcionó, pero me aparece un erro diciendo que no encuentra el delimitador de final de linea en este codigo cuando intenta leer la linea del archivo...
try{
RandomAccessFile rf = new RandomAccessFile(archivoSistema,\"r\");
rf.seek(0);
while ((linea = rf.readLine())!= null){
texto = linea.split(\":\");
for (short i = 0; i<texto.length; i++){
if (texto[i].equals(\"Creado\")){
fechaCreacion = texto[i+1]+\":\"+texto[i+2];
}
if (texto[i].equals(\"Autor\")){
nombreCreador = texto[i+1];
}
if (texto[i].equals(\"Servidor\")){
numServidores++;
}
}
}

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar