Torna indietro   Hardware Upgrade Forum > Software > Programmazione

CES Unveiled Milan, l'IA diventa tecnologia fondativa e il commercio torna centrale
CES Unveiled Milan, l'IA diventa tecnologia fondativa e il commercio torna centrale
La prima tappa italiana della Road to CES porta a Milano i vertici della Consumer Technology Association, con una nuova griglia di lettura dei trend tecnologici e una posizione netta su dazi e regolamentazione dell'IA
 Recensione OPPO Find X10 Pro Max: un top di gamma completo con tre fotocamere da 200MP
Recensione OPPO Find X10 Pro Max: un top di gamma completo con tre fotocamere da 200MP
OPPO ha appena lanciato sul mercato la nuova serie Find X10, che ha come smartphone premium il Find X10 Pro Max, uno smartphone completo, che fa del comparto fotografico il suo vero punto di forza. Ma sono tante le novità, tra cui l'AI che adesso diventa agentica. Ma andiamo a vedere nel dettaglio questo nuovo smartphone.
WoW Forever provato: il MMORPG che la community chiedeva da anni è arrivato
WoW Forever provato: il MMORPG che la community chiedeva da anni è arrivato
Abbiamo provato la beta di World of Warcraft: Forever, il Classic+ di Blizzard in arrivo il 4 novembre: la nuova razza Skyborne restituisce la sensazione di un gioco nuovo, ma le zone storiche conservano la noia divertita di Classic. Classi ribilanciate, sciamani anche nell'Alleanza e un motore grafico che in 4K gira bene anche su una RTX 3070. Cosa cambia in Forever? La risposta nell'articolo
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 17-09-2011, 13:23   #1
stromgald
Member
 
Iscritto dal: Jul 2004
Messaggi: 203
[JAVA] Serializzazione e Strutture dati

Salve a tutti avrei un un problema da risolvere.
Vi spiego la mia situazione , voglio prendere dei dati dal web una volta fatto, elaborarli e conservarli serializzandoli su file. Questi dati su ho file devo riuscirli a recuperare in qualche modo , nel senso che non voglio che siano sovrascritti e quindi che vengono aggiunti nuovi Oggetti contenuti all'interno del file quindi vorrei utilizzare una struttura anche ArrayList va bene.
Ho fatto tutto il programma e riesco anche a salvare su file , il problema resta la struttura in cui memorizzarla. Ho provato quindi a salvare un arraylist <Dati> e funziona solo che funge finchè cè almeno 1 Dato dentro.//risolto questo problema ma creato un altro//
Nello specifico , quando vado a chiamare la funzione per salvare il file , gli viene passato l'oggetto Dato. Il metodo della classe che si occupa del salvataggio , caricamento e quant'altro si chiama GestioneDati. Quando invoco il metodo di salvataggio di questa classe , il programma mi legge il contenuto del file , metto questo dato in un ArrayList (che è lo stesso dato che è contenuto nel file) e aggiungo tramite il metodo .add l'oggetto Object passato come parametro (che in teoria è un oggetto Dati).
Onestamente non mi garba tanto como ho organizzato la struttura.Vorrei prima risolvere il problema (per una questione di principio) e poi trovare una struttura migliore. Considerate che deve salvare 3 4 String + 1 oggetto GregoriusCalendar ogni giorno(devo mettere il controllo di recuperare l'ultimo oggetto dell'arraylist verificare la data e controllare se è passato 1 giorno). Quindi credo che come dimensioni con l'arraylist ci siamo visto che dovrebbe contenere 2^31-1 bytes giusto?
Vi posto il codice del salvataggio e caricamento

L'errore che ricevo è Impossibile caricare i dati metodo check: java.io.EOFException e dovrebbe essere dato da tmp= (ArrayList<Dati>) ois.readObject();

Codice:
//Questo metodo controlla se vi sono dati nel file , se è vuoto credo un //ArrayList tmp inizializzato e lo passa al metodo salva
public ArrayList<Dati> check(){
		ArrayList<Dati> tmp = new ArrayList<Dati>();	
		ObjectInputStream ois;
		try{						
			fileInput=new FileInputStream("prova.dat");			
			ois=new ObjectInputStream(fileInput);			
			if(ois.readObject() == null){
				Logger.getLogger("il file è vuoto");
				ois.close();
				return tmp;			}		
//L'errore che ricevo arriva dalla riga sottostante (Impossibile caricare i dati
// metodo check: java.io.EOFException)	
			tmp= (ArrayList<Dati>) ois.readObject();			
			ois.close();
			
		}catch(IOException e){
			System.out.println("Impossibile caricare i dati metodo check: "+e);
		}
		catch(ClassNotFoundException e){
			System.err.println("error");
		}		
		return tmp;
		
	}
	
	//Questo metodo riceve i dati del file prova.dat che contiene un ArrayList<Dati> ed aggiunge l'oggetto Dati che viene passato dal main e lo salva su file
	public void salva(Object obj){
		try{		
			ArrayList<Dati> temp = check();		
			temp.add((Dati) obj);
			ObjectOutputStream os=new ObjectOutputStream(new FileOutputStream("prova.dat"));
			os.writeObject(temp);
			os.flush();
			os.close();
		}
		catch(IOException e){
			System.out.println("Impossibile salvare i dati: "+e);
		}
	}
public Object carica(String path){
		Object obj=null;
		try{			
			fileInput=new FileInputStream(path);
			ois=new ObjectInputStream(fileInput);
			obj=ois.readObject();
			ois.close();
		}
		catch(IOException e){
			System.out.println("Impossibile caricare i dati: "+e);
		}
		catch(ClassNotFoundException e){
			System.err.println();
		}
		return obj;
	}
__________________
Cpu: AMD 5600+ Scheda madre:asus M3A-H HDMI Ram:4gb kingstone ddr2 800mhz Vga: CLUB3D HD 6870 Overclocked Edition Alimentatore: LC POWER TITAN 560W Hdd:1hd WD da 160gb + WD Esterno 1.5TB Monitor: Samsung Syncmaster P2770HD Casse:Creative I-Trigue 3220

Ultima modifica di stromgald : 17-09-2011 alle 13:27.
stromgald è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


CES Unveiled Milan, l'IA diventa tecnologia fondativa e il commercio torna centrale CES Unveiled Milan, l'IA diventa tecnologia fond...
 Recensione OPPO Find X10 Pro Max: un top di gamma completo con tre fotocamere da 200MP Recensione OPPO Find X10 Pro Max: un top di gam...
WoW Forever provato: il MMORPG che la community chiedeva da anni è arrivato WoW Forever provato: il MMORPG che la community ...
TCL P80 Ultra: con un display AMOLED opaco è una gioia per gli occhi e per le dita TCL P80 Ultra: con un display AMOLED opaco &egra...
HUAWEI MatePad Air recensione: OLED opaco e tastiera dedicata per lavorare meglio HUAWEI MatePad Air recensione: OLED opaco e tast...
Metro 2033 Redux e Last Light Redux si a...
Silicio a 1.000 °C in un microonde: ...
Sigma FP2 senza mirino né slitta ...
Huawei Pura 90 Plus, preordini aperti in...
Addio al limite di 1,5 °C: il nuovo ...
Tor sotto attacco: manipolati oltre 300 ...
Volkswagen ID. EVERY1: l'elettrica da 20...
eMudhra lascia i certificati TLS dopo il...
Torna l'ora solare: risparmiati 300 mili...
SBS amplia Pulse Power con nuovi power b...
Canva lancia Craft, il modello IA che pi...
iPhone Duo, la seconda generazione colme...
Lisa Su e la scelta strategica dietro il...
iPhone 18 si mostra nelle prime immagini...
Lenovo amplia la AI Library: cinque nuov...
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: 14:12.


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