blackguardian
21-01-2010, 10:42
mi hanno chiuso il thread quindi vi ripeto tutto il mio problema
try{
FileReader fr = new FileReader("Input.txt");//istanza classe per la lettura del file dei pacchi
BufferedReader br=new BufferedReader(fr);// istanza classe per leggere una riga di testo alla volta dei file dei pacchi
String linea;
int j=0;
int z=0;
Case[] casi = new Case[z];
Point[] punti = new Point [j];
while ((linea = br.readLine()) != null) {
String parole[] = linea.split(" ");
int valoriInt[]=new int[parole.length];
valoriInt[0]=Integer.parseInt(parole[0]);
valoriInt[1]=Integer.parseInt(parole[1]);
int N = valoriInt[0];
int M = valoriInt[1];
Case c = new Case(N,M);
casi[z]= new Case (N,M);//questa mi da l'eccezione
z++;
System.out.println(casi[z]);
for (int i = 0; i == N; i++) {
j++;
linea = br.readLine();
String stringhe[] = linea.split(" ");
int interi [] = new int[stringhe.length];
interi[0]=Integer.parseInt(stringhe[0]);
interi[1]=Integer.parseInt(stringhe[1]);
int x = interi[0];
int y = interi[1];
Point p = new Point(x,y);
punti [j] = new Point (x,y);
System.out.println(punti[j]);
}
}
} catch (IOException ex) {
ex.printStackTrace();
praticamente mi da un errore di eccezione del tipo
java.lang.ArrayIndexOutOfBoundsException
semplicemente sto leggendo una stringa che è fatta in questa maniere
3 4 <-
0 0
3 2
4 1
2 3 <-
9 3
7 3
cominciando a leggere la stringa il primo carattere che incontro è il numero 3 allora devo leggere le "3" righe successive e creare tre oggetti diversi chiamati Point mentre con la prima riga devo creare oggetti chiamati Case; finite queste 3 righe si incontra 2 3 e devo fare la stessa cosa cioè leggere le due righe successive e creare oggetti di tipo Point per quelle due successive e un oggetto di tipo Case per 2 3 dove naturalmente 2 e 3 sono i parametri dell'oggetto...spero di essere stato chiaro...
so che ho instanziato array di grandezza 0 però anche instanzandoli piu grandi il problema si ripete...se qualcuno puo aiutarmi per favore...ve ne sarei molto grato grazie:)
try{
FileReader fr = new FileReader("Input.txt");//istanza classe per la lettura del file dei pacchi
BufferedReader br=new BufferedReader(fr);// istanza classe per leggere una riga di testo alla volta dei file dei pacchi
String linea;
int j=0;
int z=0;
Case[] casi = new Case[z];
Point[] punti = new Point [j];
while ((linea = br.readLine()) != null) {
String parole[] = linea.split(" ");
int valoriInt[]=new int[parole.length];
valoriInt[0]=Integer.parseInt(parole[0]);
valoriInt[1]=Integer.parseInt(parole[1]);
int N = valoriInt[0];
int M = valoriInt[1];
Case c = new Case(N,M);
casi[z]= new Case (N,M);//questa mi da l'eccezione
z++;
System.out.println(casi[z]);
for (int i = 0; i == N; i++) {
j++;
linea = br.readLine();
String stringhe[] = linea.split(" ");
int interi [] = new int[stringhe.length];
interi[0]=Integer.parseInt(stringhe[0]);
interi[1]=Integer.parseInt(stringhe[1]);
int x = interi[0];
int y = interi[1];
Point p = new Point(x,y);
punti [j] = new Point (x,y);
System.out.println(punti[j]);
}
}
} catch (IOException ex) {
ex.printStackTrace();
praticamente mi da un errore di eccezione del tipo
java.lang.ArrayIndexOutOfBoundsException
semplicemente sto leggendo una stringa che è fatta in questa maniere
3 4 <-
0 0
3 2
4 1
2 3 <-
9 3
7 3
cominciando a leggere la stringa il primo carattere che incontro è il numero 3 allora devo leggere le "3" righe successive e creare tre oggetti diversi chiamati Point mentre con la prima riga devo creare oggetti chiamati Case; finite queste 3 righe si incontra 2 3 e devo fare la stessa cosa cioè leggere le due righe successive e creare oggetti di tipo Point per quelle due successive e un oggetto di tipo Case per 2 3 dove naturalmente 2 e 3 sono i parametri dell'oggetto...spero di essere stato chiaro...
so che ho instanziato array di grandezza 0 però anche instanzandoli piu grandi il problema si ripete...se qualcuno puo aiutarmi per favore...ve ne sarei molto grato grazie:)