Java - leer de un archivo

   
Vista:
Imágen de perfil de Charly

leer de un archivo

Publicado por Charly cdum77@hotmail.com (56 intervenciones) el 19/08/2016 16:54:04
Hola, tengo una aplicacion para controlar profesores y alumnos, que guardo en archivos y al abrirla lee de ellos también.
Guardar lo tengo hecho, pero al leer del archivo, le paso dos strings, pero al pasarle el atributo de un arraylist (lo que abajo llamo partes[2]) me da error.
Paso el codigo del metodo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public void LeerProfesores() throws IOException{
	try{
		FileReader leerfichero=new FileReader("prof.dat");
		BufferedReader escribefichero=new BufferedReader(leerfichero);
		String cadena;
		while((cadena=escribefichero.readLine())!=null){
			String[] partes=cadena.split("-");
			Profesor prof=new Profesor(partes[0],partes[1],partes[2]);
			arrProf.add(prof);
		}
		leerfichero.close();
	}catch(FileNotFoundException e){
		System.out.println("No se pudo abrir el archivo!");
	}
}
Gracias por adelantado.
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

leer de un archivo

Publicado por Hector (24 intervenciones) el 19/08/2016 17:56:26
Que clase de error te sale en especifico?

Lo mas probable es que sea un error tratando de acceder a un elemento invalido del array, prueba contando la cantidad de elementos que tiene la variable partes luego de hacer el split e imprime todos los elementos que contiene.

1
2
3
4
5
int cantidad = partes.lenght;
 
for(int i = 0; i < cantidad, i++){
     System.out.println(partes[i]);
}
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
Imágen de perfil de Charly

leer de un archivo

Publicado por Charly cdum77@hotmail.com (56 intervenciones) el 19/08/2016 20:44:22
partes es el array que creo con los atributos que tiene el objeto, que los separo para poder escribirlos por separado.
En la de profesor me subraya en rojo la parte que pone partes[2], y me dice que no se puede convertir a String un arrayList de String.
En la de alumno, que tiene dos arrays en vez de uno, he puesto para probar Arrays.toString(partes[2]); y tambien me lo marca como error.
Yo creo que el problema es que le indico mal el parámetro del arraylist al crear el objeto.
Dicho de otra manera, le tengo que indicar que después de escribir el dni y el nombre de la persona (partes[0] y partes[1]), me escriba el toString del arraylist de asignaturas que tiene ese profesor (partes[2]).
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public void LeerAlumnos() throws IOException{
	try{
		FileReader leerfichero=new FileReader("alum.dat");
		BufferedReader escribefichero=new BufferedReader(leerfichero);
		String cadena;
		while((cadena=escribefichero.readLine())!=null){
			String[] partes=cadena.split("-");
			Alumno alum=new Alumno(partes[0],partes[1],Arrays.toString(partes[2]),Arrays.toString(partes[3]));
			arrAlum.add(alum);
		}
		leerfichero.close();
	}catch(FileNotFoundException e){
		System.out.println("No se pudo abrir el archivo!");
	}
}
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