Pages: [1]   Go Down
Print
Author Topic: AIUTO  (Read 1098 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
CollegaCaparezza
Apprendista Forumista
**
Offline Offline

Posts: 141



« on: 25-07-2009, 16:25:09 »

Non capisco perchè ma questo esercizio non mi riesce:
Code:
import java.io.*;
public class Main{
public static void main(String [] args)throws IOException{
Grafo g= new Grafo();
int x=0;
BufferedReader vl=null;
try{
vl=new BufferedReader(new FileReader("citta.txt"));
while(vl.readLine()!=null)
x++;
vl.close();
}
catch(IOException e){
System.out.println("S1");
}
String [] testo= new String [x];
}
}
mi dà sempre il "S1" che è il messaggio di errore ma non capisco il perchè visto che ho il file di testo chiamato in quel modo e pieno al suo interno.
VI PREGO AIUTATEMI STO INPAZZENDO  testate testate
Logged
week86
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 174



WWW
« Reply #1 on: 25-07-2009, 16:35:29 »

sicuro di non aver chiamato il file città?? io ho copiato il tuo codice e non mi da errore..
Logged
CollegaCaparezza
Apprendista Forumista
**
Offline Offline

Posts: 141



« Reply #2 on: 25-07-2009, 18:11:18 »

Sicuro al 100%  testate
Logged
kruger
Matricola
*
Offline Offline

Gender: Male
Posts: 47


benvenuti nel mio incubo...


WWW
« Reply #3 on: 30-08-2009, 15:50:43 »

Non capisco perchè ma questo esercizio non mi riesce:
Code:
import java.io.*;
public class Main{
public static void main(String [] args)throws IOException{
Grafo g= new Grafo();
int x=0;
BufferedReader vl=null;
try{
vl=new BufferedReader(new FileReader("citta.txt"));
while(vl.readLine()!=null)
x++;
vl.close();
}
catch(IOException e){
System.out.println("S1");
}
String [] testo= new String [x];
}
}
mi dà sempre il "S1" che è il messaggio di errore ma non capisco il perchè visto che ho il file di testo chiamato in quel modo e pieno al suo interno.
VI PREGO AIUTATEMI STO INPAZZENDO  testate testate

Prova a chiudere lo stream dopo il blocco try/catch..

Logged

Il vero signore è lento nel parlare e rapido nell'agire
ɹǝǝuıƃuǝsɹǝʌǝɹ
Administrator
God of the Forum
*****
Offline Offline

Gender: Male
Posts: 4.474


Più grande è la lotta, e più è glorioso il trionfo


WWW
« Reply #4 on: 30-08-2009, 20:36:56 »

VI PREGO AIUTATEMI STO INPAZZENDO  testate testate
Intanto, stai iMpazzendo, non inpazzendo  .

EDIT: rettifico:
In secondo luogo, prova ad aggiungere preporre al blocco che cattura IOException del blocco try questo ramo:
Code:
catch(FileNotFoundException fnfe)
{
    System.out.println("Il file non c'è, come ti avevamo detto sul forum... XD");
}
e vedi che cosa compare all'esecuzione del programma.
(È importante l'ordine di cattura, poiché FileNotFoundException è specializzazione di IOException, e se fosse lanciata, una eccezione di tipo FileNotFoundException verrebbe catturata dal blocco che gestisce IOException, essendo questa disponibile come prima possibilità reale di cattura)

Terzo: è molto probabile che il file non si chiami davvero così, o non sia presente nella cartella corrente quando avvii java (la cosiddetta "cartella di lavoro"). Questo errore capita specialmente con gli IDE/editor avanzati, in cui non sei sempre sicurissimo (a meno che non li conosci perfettamente) quale sia la working directory.
Inoltre, potresti non aver abilitato l'opzione che permette di mostrare l'estensioni dei nomi dei file, in [Windows] Explorer (Esplora risorse, se usi Windows n: n < "7" ed "<" relazione di ordinamento cronologico), di conseguenza quando hai creato il file di testo, potresti aver visto che non terminava in .txt e aver aggiunto la seconda (prima però nell'ordine da sinistra a destra) estensione.
Oppure ancora potresti aver chiamato il file città.txt invece che citta.txt o peggio ancora citta'.txt.

Quarto: brutta idea fare in modo che main lanci eccezioni, visto che non mi pare ci siano usi normalmente leciti di fare in modo che qualche altro metodo richiami main (e quindi eventualmente gestirne le eccezioni lanciate, come nel tuo caso), ricordandoti che fare in modo che un metodo lanci eccezioni in modo manuale, a livello di programmazione seria, è un modo di dire: "non è possibile gestire questo tipo di errore nel metodo che lancia tale eccezione, se ne deve necessariamente occupare [se si vuole che l'eccezione sia gestita] qualcun altro a un livello precedente di stack di chiamate.". Tra l'altro, non c'è modo che, allo stato attualmente postato del codice, tale eccezione sia lanciata da main boh...
Brevemente, chi dovrebbe eventualmente gestire l'eccezione lanciata da main? [Risposta ovvia: nessuno]
Non riesco a trovare nemmeno un motivo collaterale di debug per cui questo stia avvenendo  .
Morale? Togli il costrutto throws IOException dall'intestazione del metodo main ok.
« Last Edit: 30-08-2009, 20:41:33 by reversengineer » Logged

La grande marcia della distruzione mentale proseguirà. Tutto verrà negato. Tutto diventerà un credo. È un atteggiamento ragionevole negare l'esistenza delle pietre sulla strada; sarà un dogma religioso affermarla. È una tesi razionale pensare di vivere tutti in un sogno; sarà un esempio di saggezza mistica affermare che siamo tutti svegli. Accenderemo fuochi per testimoniare che due più due fa quattro. Sguaineremo spade per dimostrare che le foglie sono verdi in estate. Non ci resterà quindi che difendere non solo le incredibili virtù e saggezze della vita umana, ma qualcosa di ancora più incredibile: questo immenso, impossibile universo che ci guarda dritto negli occhi. Combatteremo per i prodigi visibili come se fossero invisibili. Guarderemo l'erba e i cieli impossibili con uno strano coraggio. Saremo tra coloro che hanno visto eppure hanno creduto.

In tutto, amare e servire.

  
                            ن                           
I can deal with ads,
I can deal with buffer,
but when ads buffer
I suffer...

...nutrimi, o Signore, "con il pane delle lacrime; dammi, nelle lacrime, copiosa bevanda...

   YouTube 9GAG    anobii  S  Steam T.B.o.I. Wiki [univ] Lezioni private  ʼ  Albo d'Ateneo Unicode 3.0.1
Usa "Search" prima di aprire un post - Scrivi sempre nella sezione giusta - Non spammare - Rispetta gli altri utenti - E ricorda di seguire il Regolamento
Pages: [1]   Go Up
Print
Jump to: