[java] probleme de IOException

Fermé
one - 13 avril 2005 à 10:19
 one - 13 avril 2005 à 15:36
Bonjour,
Voilà je fais un petit programme qui à partir d'un fichier remplit de mots de longueurs différentes écrit dans des fichiers selon la longueur du mot.
Par exemple le premier mot contient 5 lettre on le met dans le fichier cinq.txt.
J'ai une erreur de compilation :unreported exception java.io.IOException; must be caught or declared to be thrown
Seulement j'ai bien fait catch (IOException e).
Je ne voit pas où se situe l'erreur.
Voici un petit morceau du code :

FileReader fIn;
BufferedReader bIn;
BufferedWriter un = new BufferedWriter(new FileWriter("un.txt"));
BufferedWriter deux = new BufferedWriter(new FileWriter("deux.txt"));
BufferedWriter trois = new BufferedWriter(new FileWriter("trois.txt"));
BufferedWriter quatre = new BufferedWriter(new FileWriter("quatre.txt"));
BufferedWriter cinq = new BufferedWriter(new FileWriter("cinq.txt"));
BufferedWriter six = new BufferedWriter(new FileWriter("six.txt"));
BufferedWriter plus = new BufferedWriter(new FileWriter("sept.txt"));
String mot ;
try
{
File fObj = new File(fichier);
if(!fObj.exists())
{
System.out.println("le fichier "+fichier+" n'existe pas");
System.exit(0);
}
fIn = new FileReader(fObj);
bIn = new BufferedReader(fIn);

String ligne = bIn.readLine();
nbMots = Integer.parseInt(ligne);
dico = new Vector();
for(int i = 0; i < nbMots ; i++)
{
ligne = bIn.readLine();
StringTokenizer motToken = new StringTokenizer(ligne, " ");
mot = (String)motToken.nextToken() ;
//dico.addElement(mot.nextToken());
if( mot.length() == 1)
{
un.write(mot);
un.newLine();
}
else if( mot.length() == 2)
{
deux.write(mot);
deux.newLine();
}
else if( mot.length() == 3)
{
trois.write(mot);
trois.newLine();
}
else if( mot.length() == 4)
{
quatre.write(mot);
quatre.newLine();
}
else if( mot.length() == 5)
{
cinq.write(mot);
cinq.newLine();
}
else if( mot.length() == 6)
{
six.write(mot);
six.newLine();
}
else
{
plus.write(mot);
plus.newLine();
}
}
fIn.close();
bIn.close();
un.close();
deux.close();
trois.close();
quatre.close();
cinq.close();
six.close();
plus.close();
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}

Pourriez-vous m'expliquer l'erreur?
Merci d'avance !
A voir également:

3 réponses

Satrialien Messages postés 52 Date d'inscription mercredi 9 mars 2005 Statut Membre Dernière intervention 28 janvier 2006 13
13 avril 2005 à 10:59
Salut,

une IOException peut être jetée par le constructeur de FileWriter. Ajoute un bloc 'try - catch' supplémentaire autour de ta suite de déclarations :

BufferedWriter un = new BufferedWriter(new FileWriter("un.txt"));
BufferedWriter deux = new BufferedWriter(new FileWriter("deux.txt"));
...

ou alors déplace le try existant avant cette suite de déclarations, puisque qu'il existe déjà un catch sur les IOException.

cf http://java.sun.com/j2se/1.3/docs/api/java/io/FileWriter.html#FileWriter(java.io.File)
1