Java - Array de esctructuras

 
Vista:

Array de esctructuras

Publicado por Luis Bueno (3 intervenciones) el 22/01/2008 09:39:40
Buenas! Hemos realizado lo que se podría llamar un array de esctructuras y resulta que al compilar va perfecto pero en la ejecución nos da un excepcion, adjunto los archivos haber si usted ve el problema, que pueda ser que esté mal definido, un saludo, muchas gracias.

marco.java

public class marco {
char contenido[]=new char[1024];
boolean estado=false;
}

menu.java

import java.io.*;
public class menu{
public static void main(String[] args) throws IOException {
int opcion;
int tama;
BufferedReader teclado= new BufferedReader(new InputStreamReader(System.in));
System.out.println("MENU");
marco[] temporal= new marco[26];
char[] cadena1={'a','b'};
char[] cadena2={'c'};
System.arraycopy(cadena1, 0, cadena2, 0, 1024);
System.out.println(cadena2);
//nuevo[]=null;
//marco nuevo= new marco();
System.out.println("________ ");
System.out.println("1. Visualizar contenido completo de una pagina.");
System.out.println("2. Traducir direccion logica.");
System.out.println("3. Mostrar contenido de la tabla de paginas.");
System.out.println("4.Salir");
System.out.print("ELIJA OPCION:");
opcion=Integer.parseInt(teclado.readLine());
switch(opcion){
case 1:
int pagina=0;
System.out.println("Introduzca el numero de pagina a visualizar:");
pagina=Integer.parseInt(teclado.readLine());
System.out.println("prueba");
//Menu fichero = new Menu();
BufferedReader br = null;
int contador=1;
System.out.println("prueba3");
for(contador=1; contador<26; contador++){
BufferedReader bufread = new BufferedReader (new FileReader ( "archivo.txt"));
while (bufread.ready()){
System.out.println("bucle");
if ((temporal[contador].estado)==false){
char[] lineacaracteres = new char[1024];
tama=bufread.read(lineacaracteres,0,1024);
//Marco[contador].contenido=lineacaracteres;
System.out.println(temporal[contador].contenido);
//Marco[contador].estado=true;
}
}
}
}
}
}
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

RE:Array de esctructuras

Publicado por ideasjava (83 intervenciones) el 22/01/2008 15:39:23
Hola. La excepcion que salta es la siguiente:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException
at java.lang.System.arraycopy(Native Method)
at mypackage.Menu.main(Menu.java:15)

esto pasa porque el segundo array tiene menor tamaño que el primero. En este caso el er array tiene una longitud de elementos y quieres copiar esos elementos en el 2do array que tiene una longitud de 1 elemento.

Lo que tienes que asegurarte es que el tamaño del 2do array sea al menos de la misma longitud que el primero.

Cualquier cosa pregunta
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