|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Nov 2002
Città: Arezzo
Messaggi: 208
|
[Java] Lettura da file e ClassCastException
Salve a tutti, ritorno con i miei solito problemi sul java ( il 21 ho l'esame e devo passarlo a tutti i costi )!
Allora vi posto i miei due file: il primo è la classe Tratta e il secondo è la classe Main composto da vari metodi tra cui quello di lettura ( lettura di un array di Tratta, appunto). Tratta.java: Codice:
public class Tratta implements java.io.Serializable {
protected String sigla;
protected String citta1;
protected String citta2;
protected int distanza;
public String getSigla(){
return sigla;
}
public String getCitta1(){
return citta1;
}
public String getCitta2(){
return citta2;
}
public int getDistanza(){
return distanza;
}
public Tratta(String siglaL, String citta1L, String citta2L, int distanzaL){
sigla = siglaL;
citta1 = citta1L;
citta2 = citta2L;
distanza = distanzaL;
}
public String altraCitta(String a){
if (citta1.compareToIgnoreCase(a) == 0){
return citta2;
}
if (citta2.compareToIgnoreCase(a) == 0){
return citta1;
}
else return null;
}
public String toString(){
return "La tratta che parte da " +getCitta1() + " e arriva a " + getCitta2() + ", dista " +getDistanza() + "km.";
}
}
Main.java: Codice:
import java.util.*;
import java.io.*;
public class Main{
public static void main(String arg[]) throws FileNotFoundException, IOException{
elencoCitta(leggiRete(arg[0]));
}
public static Vector leggiRete(String nomefile) throws FileNotFoundException, IOException{
//BufferedReader input = null;
//try{
BufferedReader input = new BufferedReader(new FileReader(nomefile));
Vector v = new Vector();
String buffer;
while ((buffer = input.readLine())!=null){
StringTokenizer stk = new StringTokenizer(buffer);
String sigla = stk.nextToken().trim();
String citta1 = stk.nextToken().trim();
String citta2 = stk.nextToken().trim();
int distanza = Integer.parseInt(stk.nextToken().trim());
v.add( new Tratta(sigla, citta1, citta2, distanza));
}
input.close();
return v;
}
public static Tratta[] elencoCitta(Vector v){
Tratta[] elenco = new Tratta[v.size()];
elenco = (Tratta[])v.toArray();
for(int i=0; i<elenco.length; i++){
System.out.println(elenco[i]);
}
return elenco;
}
}
Codice:
A29 Bologna Rimini 50 A01 Bologna Milano 160 A34 Milano Torino 140 Grazie in anticipo delle risposte, NaNNy |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
io l'ho risolto usando i generics..ma forse funziona anche senza usarli
Codice:
import java.util.*;
import java.io.*;
public class Main{
public static void main(String arg[]) throws FileNotFoundException, IOException{
elencoCitta(leggiRete(arg[0]));
}
public static Vector leggiRete(String nomefile) throws FileNotFoundException, IOException{
//BufferedReader input = null;
//try{
BufferedReader input = new BufferedReader(new FileReader(nomefile));
Vector<Tratta> v = new Vector<Tratta>();
String buffer;
while ((buffer = input.readLine())!=null){
StringTokenizer stk = new StringTokenizer(buffer);
String sigla = stk.nextToken().trim();
String citta1 = stk.nextToken().trim();
String citta2 = stk.nextToken().trim();
int distanza = Integer.parseInt(stk.nextToken().trim());
v.add( new Tratta(sigla, citta1, citta2, distanza));
}
input.close();
return v;
}
public static Tratta[] elencoCitta(Vector <Tratta> v){
Tratta[] elenco = new Tratta[v.size()];
elenco = v.toArray(elenco);
for(int i=0; i<elenco.length; i++){
System.out.println(elenco[i]);
}
return elenco;
}
}
La tratta che parte da Bologna e arriva a Milano, dista 160km. La tratta che parte da Milano e arriva a Torino, dista 140km.
__________________
|
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Nov 2002
Città: Arezzo
Messaggi: 208
|
Grazie comunque del tuo aiuto, ma non avendo fatto a lezione i generics ( non sò minimamente cosa siano ) dovrei trovare una soluzione senza di essi....
Altre idee? |
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Nov 2002
Città: Arezzo
Messaggi: 208
|
uppete
|
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Feb 2005
Città: Napoli (provincia)
Messaggi: 2372
|
Quote:
Codice:
public static Tratta[] elencoCitta(Vector v){
Tratta elenco[] = new Tratta[v.size()];
elenco = (Tratta[]) v.toArray(elenco);
for(int i=0; i<elenco.length; i++){
System.out.println(elenco[i]);
}
return elenco;
}
__________________
|
|
|
|
|
|
|
#6 |
|
Member
Iscritto dal: Nov 2002
Città: Arezzo
Messaggi: 208
|
FUNZIONA!! Grazie mille !!!!
|
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
Quote:
scusa se nn sono stato kiaro, ma io preferisco sempre usare i generics, anke quando non strettamente necessario xkè ritengo ke migliorino la leggibilità del codice.... non sapevo ke non aveste fatto i generics all'univ...
__________________
|
|
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: Feb 2005
Città: Napoli (provincia)
Messaggi: 2372
|
Quote:
__________________
|
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Dec 2001
Città: Milano
Messaggi: 545
|
__________________
Angus the Hunter @ Realm of magic | Angus Young @ Batracer °SetiEmperor°| Ninja Technologies { qualunque cosa sia, è veloce e fa male (cit.) } |
|
|
|
|
|
#10 |
|
Member
Iscritto dal: Nov 2002
Città: Arezzo
Messaggi: 208
|
li abbiamo fatti prorpio oggi
non c'ho capito molto, ma ora mi devo dedicare alla parte grafica...
|
|
|
|
|
|
#11 | |
|
Senior Member
Iscritto dal: Feb 2005
Città: Napoli (provincia)
Messaggi: 2372
|
Quote:
All'Università di Salerno non li hanno nemmeno nominati però sono una feature della 1.5.0?
__________________
|
|
|
|
|
|
|
#12 |
|
Member
Iscritto dal: Nov 2002
Città: Arezzo
Messaggi: 208
|
Sì, li hanno introdotti con la 1.5.0
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 09:56.











Raffo™ (io, non la birra) |
|
sono una feature della 1.5.0?








