Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Con velocità teoriche fino a 11 Gbps, gestione tramite app intelligente e protezione avanzata dei dispositivi, Roamii BE Pro porta il Wi‑Fi 7 tri‑band nelle abitazioni più esigenti. Un sistema Wi-Fi Mesh proposto da MSI allo scopo di garantire agli utenti una rete fluida e continua capace di sostenere streaming 8K, gaming competitivo e le applicazioni moderne più esigenti in termini di banda
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi
Mate X7 rinnova la sfida nel segmento dei pieghevoli premium puntando su un design ancora più sottile e resistente, unito al ritorno dei processori proprietari della serie Kirin. L'assenza dei servizi Google e del 5G pesa ancora sull'esperienza utente, ma il comparto fotografico e la qualità costruttiva cercano di compensare queste mancanze strutturali con soluzioni ingegneristiche di altissimo livello
Nioh 3: souls-like punitivo e Action RPG
Nioh 3: souls-like punitivo e Action RPG
Nioh 3 aggiorna la formula Team NINJA con aree esplorabili più grandi, due stili di combattimento intercambiabili al volo (Samurai e Ninja) e un sistema di progressione pieno di attività, basi nemiche e sfide legate al Crogiolo. La recensione entra nel dettaglio su combattimento, build, progressione e requisiti PC
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 08-03-2006, 00:08   #1
NaNNy86
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.";
	}
}
Prima domanda, devo implementare la Serializeble anche se il file è in lettura?

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;
    }
}
Infine un esempio di txt:
Codice:
A29 Bologna Rimini 50
A01 Bologna Milano 160
A34 Milano Torino 140
Quando vado a lanciare il mio Main, immettendo da riga di comanda il nome del file, mi lanca una ClassCastException, ma io non riesco a capire dove sia il problema....
Grazie in anticipo delle risposte,
NaNNy
NaNNy86 è offline   Rispondi citando il messaggio o parte di esso
Old 08-03-2006, 02:06   #2
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
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 Rimini, dista 50km.
La tratta che parte da Bologna e arriva a Milano, dista 160km.
La tratta che parte da Milano e arriva a Torino, dista 140km.
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 08-03-2006, 10:44   #3
NaNNy86
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?
NaNNy86 è offline   Rispondi citando il messaggio o parte di esso
Old 08-03-2006, 12:34   #4
NaNNy86
Member
 
Iscritto dal: Nov 2002
Città: Arezzo
Messaggi: 208
uppete
NaNNy86 è offline   Rispondi citando il messaggio o parte di esso
Old 08-03-2006, 15:44   #5
rdefalco
Senior Member
 
L'Avatar di rdefalco
 
Iscritto dal: Feb 2005
Città: Napoli (provincia)
Messaggi: 2372
Quote:
Originariamente inviato da NaNNy86
uppete
eccolo qui:
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;
    }
il metodo toArray può avere come parametro opzionale un array da prendere ad esempio per il tipo di dato da usare. Sembra funzionare, altrimenti mi mandi un MP o uppi il thread.
__________________
Raffo™ (io, non la birra) | informatica»unisa.it | my terzigno | για να είναι ή για να μην είναι
rdefalco è offline   Rispondi citando il messaggio o parte di esso
Old 08-03-2006, 19:28   #6
NaNNy86
Member
 
Iscritto dal: Nov 2002
Città: Arezzo
Messaggi: 208
FUNZIONA!! Grazie mille !!!!
NaNNy86 è offline   Rispondi citando il messaggio o parte di esso
Old 09-03-2006, 01:57   #7
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
Quote:
Originariamente inviato da rdefalco
eccolo qui:
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;
    }
il metodo toArray può avere come parametro opzionale un array da prendere ad esempio per il tipo di dato da usare. Sembra funzionare, altrimenti mi mandi un MP o uppi il thread.
infatti intendevo quello come soluzione senza generics, bastava togliere quello ke avevo scritto tra <>
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...
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 09-03-2006, 13:58   #8
rdefalco
Senior Member
 
L'Avatar di rdefalco
 
Iscritto dal: Feb 2005
Città: Napoli (provincia)
Messaggi: 2372
Quote:
Originariamente inviato da ^TiGeRShArK^
infatti intendevo quello come soluzione senza generics, bastava togliere quello ke avevo scritto tra <>
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...
Neanche io ho idea di cosa siano i generics... spiegazione?
__________________
Raffo™ (io, non la birra) | informatica»unisa.it | my terzigno | για να είναι ή για να μην είναι
rdefalco è offline   Rispondi citando il messaggio o parte di esso
Old 09-03-2006, 14:36   #9
Angus
Senior Member
 
L'Avatar di Angus
 
Iscritto dal: Dec 2001
Città: Milano
Messaggi: 545
generics
__________________
Angus the Hunter @ Realm of magic | Angus Young @ Batracer
°SetiEmperor°| Ninja Technologies
{ qualunque cosa sia, è veloce e fa male (cit.) }
Angus è offline   Rispondi citando il messaggio o parte di esso
Old 09-03-2006, 22:12   #10
NaNNy86
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...
NaNNy86 è offline   Rispondi citando il messaggio o parte di esso
Old 09-03-2006, 23:17   #11
rdefalco
Senior Member
 
L'Avatar di rdefalco
 
Iscritto dal: Feb 2005
Città: Napoli (provincia)
Messaggi: 2372
Quote:
generics
Beh sembrano interessanti, perlomeno riguardo la parte del compilare e rilevare errori prima della fase di runtime.

All'Università di Salerno non li hanno nemmeno nominati però sono una feature della 1.5.0?
__________________
Raffo™ (io, non la birra) | informatica»unisa.it | my terzigno | για να είναι ή για να μην είναι
rdefalco è offline   Rispondi citando il messaggio o parte di esso
Old 10-03-2006, 11:45   #12
NaNNy86
Member
 
Iscritto dal: Nov 2002
Città: Arezzo
Messaggi: 208
Sì, li hanno introdotti con la 1.5.0
NaNNy86 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo M...
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi Recensione HUAWEI Mate X7: un foldable ottimo, m...
Nioh 3: souls-like punitivo e Action RPG Nioh 3: souls-like punitivo e Action RPG
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti Test in super anteprima di Navimow i220 LiDAR: i...
Dark Perk Ergo e Sym provati tra wireless, software via browser e peso ridotto Dark Perk Ergo e Sym provati tra wireless, softw...
Nuovi standard di sicurezza per l'avvio ...
Mini-LED 34'' WQHD (3440x1440) a prezzo ...
Zero LS1 debutta in Italia: lo scooter e...
Cina, sviluppata batteria al litio semi-...
Intel TDX 1.5: 5 vulnerabilità ri...
In super sconto, con 100€ di differenza:...
Maxi TV da 75'' sotto i 600€: Hisense a ...
Intel presenta il prototipo Z-Angle Memo...
Exynos 2700, Samsung già lavora a...
Microsoft rilascia Windows 11 26H1: cosa...
Apple vola in Cina: il merito è d...
WhatsApp Web sta per colmare la sua pi&u...
Spotify chiude un trimestre da record: i...
Samsung potrebbe riproporre smartphone c...
AirPods Pro 3 a 219€, AirTag da 4 pezzi ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 09:56.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v