Forum Informatica Unict

LAUREA TRIENNALE (D.M. 270/04) => Programmazione 2, 9 CFU => Topic started by: sisal on 29-04-2009, 17:26:24



Title: Scrittura e lettura di interi su un file
Post by: sisal on 29-04-2009, 17:26:24
Salve ragazzi, tornando indietro al ripasso mi sono accorto di un errore del quale ancora non ho capito il significato.
Si tratta della scrittura di interi su un file.
Il programma compila però dopo la compilazione da un errore che via via si propaga fino al main.
Qualcuno potrebbe dirmi la causa di questo errore?
Ho ridotto programma ad un piccolo pezzo di codice ecco qua:
Code:
DataOutputStream dos=new DataOutputStream(new FileOutputStream(new File("Interi.txt"),false));
for(int i=0;i<10;i++)
{
dos.writeInt(i+1);
}
dos.close();

DataInputStream dis=new DataInputStream(new FileInputStream(new File("Interi.txt")));
while(true)
{
try
{
System.out.println(dis.readInt());
}
catch(EOFException e)
{
dis.close();
}
}
Il risultato che da è:
Code:
>java CreazioneFileELetturaScritturaDiInteri
1
2
3
4
5
6
7
8
9
10
Exception in thread "main" java.io.IOException: No such file or directory
at java.io.FileInputStream.read(Native Method)
at java.io.DataInputStream.readInt(Unknown Source)
at CreazioneFileELetturaScritturaDiInteri.main(CreazioneFileELetturaScritturaDiInteri.java:19)
>Exit code: 1


Title: Re:Scrittura e lettura di interi su un file
Post by: MisteroLupo on 02-05-2009, 11:27:57
Se usi il costruttore di FileInputStream con il parametro File, il file deve esistere, altrimenti lancia una IOException come nel tuo caso. Una soluzione sbrigativa sta nel sostiutire la riga
Code:
DataInputStream dis=new DataInputStream(new FileInputStream(new File("Interi.txt")));
con
Code:
DataInputStream dis=new DataInputStream(new FileInputStream("Interi.txt"));
che sarebbe il costruttore con il parametro String che denota il pathname del file. Nel caso il file non dovesse esistere lo crea automaticamente la JVM.
Ciao!