Torna indietro   Hardware Upgrade Forum > Software > Programmazione

ASUS ProArt GoPro Edition è il notebook compatto per chi crea
ASUS ProArt GoPro Edition è il notebook compatto per chi crea
Un notebook sviluppato in collaborazione con GoPro ma che risponde al meglio alle necessità di tutti coloro che creano contenuti video: robustezza, design, potenza di calcolo e funzionalità si abbinano al meglio tra di loro, pur se a prezzo di un costo elevato per via della tanta memoria onboard
Fable e Sol a confronto: due cartoni animati creati su un PC con RTX 3090
Fable e Sol a confronto: due cartoni animati creati su un PC con RTX 3090
Ho affidato ai due modelli lo stesso mestiere ma non lo stesso identico prompt: trasformare una storia illustrata in un video usando una RTX 3090 e modelli locali. Ne sono usciti due film, due applicazioni e due idee opposte di efficienza. Fucina, progettata con Fable 5, colpisce di più nei primi secondi. Storyboard Studio, costruito con ChatGPT/Codex, regge meglio sulla distanza e vince il confronto complessivo, ma di stretta misura
Il tablet rugged leggero e sottile: Lenovo ThinkTab X11 offre resistenza, doppia USB-C e batteria rimovibile
Il tablet rugged leggero e sottile: Lenovo ThinkTab X11 offre resistenza, doppia USB-C e batteria rimovibile
Lenovo ha lanciato il ThinkTab X11 rimettendo piede nel segmento dei tablet Android con il marchio Think dopo oltre un decennio di assenza. Il risultato è un dispositivo che prende una direzione precisa: massima dotazione funzionale, costruzione resistente, autonomia fuori dagli schemi
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 26-11-2011, 20:08   #1
@mattste
Senior Member
 
L'Avatar di @mattste
 
Iscritto dal: Aug 2006
Città: Roma
Messaggi: 2187
[JAVA] Errore incomprensibile

Ciao a tutti , sono ancora alle prime armi con java e sto riscontrando uno strano problema che da oltre 1 ora nn riesco a risolvere per un programma molto corto è facile .
Devo calcolare la media in modo ricorsivo da un file contenente un intero per riga . Questo è il codice del metodo statico :



public static int mediaDaFile(BufferedReader r) throws IOException{
String linea=r.readLine();
if (linea==null)
return (Integer.parseInt(linea));
else
return ((Integer.parseInt(linea)+mediaDaFile(r))/2);
}



Questo è il main :

FileReader f = new FileReader("prova.txt");
BufferedReader br = new BufferedReader(f);
System.out.println(Numeri.mediaDaFile(br));


Nel file ho messo solo 4 interi per prova in un file nella stessa cartella prova.txt .
La compilazione và a buon fine ma in esecuzione mi dà sempre questo errore :


Exception in thread "main" java.lang.NumberFormatException: null
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at Numeri.mediaDaFile(Numeri.java:113)
at Numeri.mediaDaFile(Numeri.java:115)
at Numeri.mediaDaFile(Numeri.java:115)
at Numeri.main(Numeri.java:146)


Grazie e scusate per la domanda stupida ma non riesco a trovare l'errore e sto veramente impazzendo
__________________
SCAMBI EFFETTUATI CON: diventano troppi...nn entrano piu!!!
@mattste è offline   Rispondi citando il messaggio o parte di esso
Old 26-11-2011, 20:52   #2
sic2
Junior Member
 
Iscritto dal: Nov 2011
Messaggi: 13
ciao,


ti consiglio di scrivere:

if (linea == "")

inoltre prova con questo

String linea = r.readline().trim()

forse il tuo file non contiene solo numeri ma anche degli spazi che impediscono a java di convertire la string in integer.
__________________
http://sic-oding.blogspot.com/
sic2 è offline   Rispondi citando il messaggio o parte di esso
Old 26-11-2011, 21:04   #3
@mattste
Senior Member
 
L'Avatar di @mattste
 
Iscritto dal: Aug 2006
Città: Roma
Messaggi: 2187
continua a non andare
__________________
SCAMBI EFFETTUATI CON: diventano troppi...nn entrano piu!!!
@mattste è offline   Rispondi citando il messaggio o parte di esso
Old 26-11-2011, 23:28   #4
__ZERO_UNO__
Member
 
L'Avatar di __ZERO_UNO__
 
Iscritto dal: Jul 2009
Città: Milano
Messaggi: 270
Se linea == null tenti di convertirla in intero? E quale numero intero sarebbe null?
Non usare BufferReader, è obsoleto. Meglio la classe Scanner.
__________________

AMD PII x4 955 BE | Sapphire HD4850 Vapor-X 1 GB | Samsung SpinPoint F1 500GB | Samsung EcoGreen F4 2TB
Gigabyte GA-MA790FXT-UD5P | Fractal Design Define R3 USB3.0 Titanium Grey | CORSAIR 650W CMPSU-650TX
Noctua U12P SE2 | 2 x 2GB Kingston 1333 MHz | Samsung SyncMaster P2450 | Samsung SyncMaster T200
__ZERO_UNO__ è offline   Rispondi citando il messaggio o parte di esso
Old 27-11-2011, 00:24   #5
@mattste
Senior Member
 
L'Avatar di @mattste
 
Iscritto dal: Aug 2006
Città: Roma
Messaggi: 2187
si effettivamente nn ha proprio senso vedendolo a distanza di tempo quell'
if (linea==null) . Resta il fatto che ora ho realizzato che cosi non funziona a me serve l'ultimo valore in modo tale che la divisione/2 mi dia il valore uguale all'ultimo intero ma attualmente nn saprei fare con un metodo ricorsivo . Ho provato con mark e reset ma ho realizzato che cmq nn risolverei il problema . qualcuno ha qualche idea su come farlo in modo ricorsivo!?(ovviamente immagino non valga leggere l'ultimo valore da un altro metodo e passarlo come parametro seppur funzionale ).
Non uso lo scanner poiche per ora i professori ci consigliano di utilizzare determinate classi, anche piu rognose ,ma che possono aiutare a capire essendo ancora alle prime armi (diciamo che di fatto ci vincolano ad utilizzarle)


EDIT :è sbagliato in ogni caso provo a trovare un altro modo per risolvere il problema . grazie cmq
__________________
SCAMBI EFFETTUATI CON: diventano troppi...nn entrano piu!!!

Ultima modifica di @mattste : 27-11-2011 alle 10:21.
@mattste è offline   Rispondi citando il messaggio o parte di esso
Old 28-11-2011, 10:25   #6
webking
Senior Member
 
Iscritto dal: Aug 2006
Messaggi: 334
Quote:
Originariamente inviato da @mattste Guarda i messaggi
Ciao a tutti , sono ancora alle prime armi con java e sto riscontrando uno strano problema che da oltre 1 ora nn riesco a risolvere per un programma molto corto è facile .
Devo calcolare la media in modo ricorsivo da un file contenente un intero per riga . Questo è il codice del metodo statico :



public static int mediaDaFile(BufferedReader r) throws IOException{
String linea=r.readLine();
if (linea==null)
return (Integer.parseInt(linea));
else
return ((Integer.parseInt(linea)+mediaDaFile(r))/2);
}



Questo è il main :

FileReader f = new FileReader("prova.txt");
BufferedReader br = new BufferedReader(f);
System.out.println(Numeri.mediaDaFile(br));


Nel file ho messo solo 4 interi per prova in un file nella stessa cartella prova.txt .
La compilazione và a buon fine ma in esecuzione mi dà sempre questo errore :


Exception in thread "main" java.lang.NumberFormatException: null
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at Numeri.mediaDaFile(Numeri.java:113)
at Numeri.mediaDaFile(Numeri.java:115)
at Numeri.mediaDaFile(Numeri.java:115)
at Numeri.main(Numeri.java:146)


Grazie e scusate per la domanda stupida ma non riesco a trovare l'errore e sto veramente impazzendo
Il problema è semplice, ottieni un NULL pointe exception a causa dell'IF. Un BufferedReader torna NULL solo in caso di arrivo di EOF, cioè quando lo stream di lettura viene chiuso. Quello che tu fai è
"assegno a line il valore di ritorno di readLine"
"se il valore è null, ritorno la rappresentazione in Intero di NULL"

E qui che non ci siamo: se linea è NULL, è finito lo stream di lettura e non puoi convertire NULL in un intero!

Se linea == NULL, allora hai raggiunto EOF, fai tornare 0!


Codice:
public static int mediaDaFile(BufferedReader r) throws IOException{

String linea=r.readLine();

if (linea==null)
      return 0;
else 
      return ((Integer.parseInt(linea)+mediaDaFile(r))/2);
}
Questo dovrebbe risolverti il problema: quando arriva alla fine dello stream, torna 0, in modo che al livello superiore dello stack di invocazione ci sia la media calcolata prima + 0 = media calcolata prima; e così via. Provalo e facci sapere (io non ho avuto tempo di mettermi con Eclipse ma sono piuttosto sicuro che vada benone!)
webking è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


ASUS ProArt GoPro Edition è il notebook compatto per chi crea ASUS ProArt GoPro Edition è il notebook c...
Fable e Sol a confronto: due cartoni animati creati su un PC con RTX 3090 Fable e Sol a confronto: due cartoni animati cre...
Il tablet rugged leggero e sottile: Lenovo ThinkTab X11 offre resistenza, doppia USB-C e batteria rimovibile Il tablet rugged leggero e sottile: Lenovo Think...
AMD Advancing AI 2026: l'hardware AMD per le elaborazioni IA del futuro, tra GPU, CPU e robot AMD Advancing AI 2026: l'hardware AMD per le ela...
Tascabile e con Android: BOOX Go 6 Gen II è diverso da tutti gli altri e-reader Tascabile e con Android: BOOX Go 6 Gen II &egrav...
WINDTRE, le offerte di fine luglio: 5G F...
Due scrivanie angolari gaming a prezzi b...
Telecamere e intelligenza artificiale su...
L'ASUS Zenbook di cui tutti parlano torn...
Helios, la piattaforma di Schneider Elec...
Multiverse Computing raccoglie 500 milio...
Videogiochi, social e azzardo: un giovan...
Tre astronauti rientrano dalla ISS: la S...
Kimi K3 ha trovato 19 zero-day in Redis ...
Aggiungere un acceleratore IA per data c...
Debian valuta lo stop totale ai contribu...
Huawei sfida il ban USA: al via la produ...
QNAP lancia i nuovi NAS TS-262A e TS-462...
E4 Computer Engineering e EuroHPC JU uni...
World di Sam Altman raccoglie 52,5 milio...
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: 23:05.


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