Hello les gens,
Mon besoin est de lire le contenu d'un fichier.
J'ai les deux méthode suivantes pour lire le contenu d'un fichier ligne par ligne (je ne peux pas utiliser un objet Scanner apparu depuis java 5):
Toutes les deux marchent sur une machine windows faisant tourner WAS 5.1 en JDK 1.4 (environnement de dev)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 public static StringBuffer readAFile(String filePath) { StringBuffer result = new StringBuffer(); try { // Création du flux bufférisé sur un FileReader, immédiatement suivi par un // try/finally, ce qui permet de ne fermer le flux QUE s'il le reader // est correctement instancié (évite les NullPointerException) BufferedReader buff = new BufferedReader(new FileReader(filePath)); try { String line; // Lecture du fichier ligne par ligne. Cette boucle se termine // quand la méthode retourne la valeur null. while ((line = buff.readLine()) != null) { //System.out.println(line); result = result.append(line); } } finally { // dans tous les cas, on ferme nos flux buff.close(); } } catch (IOException ioe) { // erreur de fermeture des flux System.out.println( "Erreur sur com.projet.util.FileOperation.readAFile(String) -->" + ioe.toString()); } return result; } public static String readFile(String theFileName) { InputStreamReader flog = null; LineNumberReader llog = null; String myLine = null; String myConcatLines = ""; try { flog = new InputStreamReader(new FileInputStream(theFileName)); llog = new LineNumberReader(flog); while ((myLine = llog.readLine()) != null) { // --- Ajout de la ligne au contenu myConcatLines += myLine; } } catch (Exception e) { // --- Gestion erreur lecture du fichier (fichier non existant, illisible, etc.) System.out.println( "Erreur sur com.projet.util.FileOperation.readFile(String) -->" + e.toString()); } return myConcatLines; }
Ce code lève une exceptionlorsqu'il tourne sur la machine de prod sous unix avec WAS 6 et JDK 6
Code : Sélectionner tout - Visualiser dans une fenêtre à part sun.io.MalformedInputException
Je ne peux pas déboguer sur la machine de prod pour savoir à quel niveau ça bug malheureusement.
Que signifie cette exception ?
Merci pour toutes vos contributions.
Partager