Salve.
Ho un ciclo for che effettua una sequenza di calcoli che produce coppie di valori (coordinate) al variare dell'indice indice per valori interi da zero a un dato input grado.
In tale ciclo vengono anche compilati due ArrayList con .add().
Stampando gli ArrayList, essi risultano compilati perfettamente.
Ora ho bisogno di organizzare i valori di questi ArrayList in un file di testo, creato con la classe PrintWriter di modo che per ogni riga ci sia la coppia di valori degli ArrayList alla medesima posizione:
riga 1 | arraylist1.get(0),arralist2.get(0)
riga 2 | arraylist1.get(1),arralist2.get(1)
...
Se includo il PrintWriter nel ciclo for di calcolo, il file di testo viene sovrascritto per ogni valore dell'indice e quindi stampo soltanto l'ultima coppia di coordinate.
Se creo un sottociclo for, con un nuovo indice (ma anche con lo stesso) che vada da 0 a grado, non ho nessun marcatore di errori nel codice ma la console mostra delle exception come se l'indice fosse superiore al size degli ArrayList (cosa non vera), e anche nella chiamata al .get(indice).
Questo è il blocco di codice interessato:
codice:
try {
PrintWriter writer = new PrintWriter("Radici(" + grado + ")" + reale + "+" + img + "i.txt", "UTF-8");
writer.println("_pline"); // riga che serve nell'uso del file di testo generato
for (int i = 0; i != grado; i++) {
writer.println(soluzioniR.get(i) + "," + soluzioniI.get(i));
}
writer.println("ch"); // riga che serve nell'uso del file di testo generato
writer.close();
} catch (IOException e) {
System.out.println("Qualcosa non va");
}
Questi invece sono i rimandi alle exception su ArrayList.java:
codice:
private void rangeCheck(int index) {
if (index >= size)
throw new IndexOutOfBoundsException(outOfBoundsMsg(index));
}
codice:
public E get(int index) {
rangeCheck(index);
return elementData(index);
}
Dove sbaglio?