Quand j'essaie de compiler le code ci dessous j'ai un message d'erreur=20
d'Eclipse disant :
"La variable locale sortie peut ne pas avoir =E9t=E9 initialis=E9e"
Les variable en cause sont entree et sortie aux lignes 45-46 ; 56-57.
Pourquoi ?
Merci d'avance
/*
* Cr=E9=E9 le 8 juin 2004
*
* Pour changer le mod=E8le de ce fichier g=E9n=E9r=E9, allez =E0 :
* Fen=EAtre>Pr=E9f=E9rences>Java>G=E9n=E9ration de code>Code e=
t=20
commentaires
*/
/**
* @author JLF928
*
* Pour changer le mod=E8le de ce commentaire de type g=E9n=E9r=E9, allez =
=E0 :
* Fen=EAtre>Pr=E9f=E9rences>Java>G=E9n=E9ration de code>Code e=
t=20
commentaires
*/
import java.io.*;
public class CopyBytes {
=09public static void main(String[] args) {
=09=09//D=E9claration des variables
=09=09File inputFile;
=09=09File outputFile;
=09=09FileInputStream entree;
=09=09FileOutputStream sortie;
=09=09int c;
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jean Bernard Root
Latyr_Dev wrote:
Bonjour
Quand j'essaie de compiler le code ci dessous j'ai un message d'erreur d'Eclipse disant : "La variable locale sortie peut ne pas avoir été initialisée" Les variable en cause sont entree et sortie aux lignes 45-46 ; 56-57.
Pourquoi ?
Merci d'avance
/* * Créé le 8 juin 2004 * * Pour changer le modèle de ce fichier généré, allez à : * Fenêtre>Préférences>Java>Génération de code>Code et commentaires */
/** * @author JLF928 * * Pour changer le modèle de ce commentaire de type généré, allez à : * Fenêtre>Préférences>Java>Génération de code>Code et commentaires */ import java.io.*;
public class CopyBytes { public static void main(String[] args) { //Déclaration des variables File inputFile; File outputFile; FileInputStream entree; FileOutputStream sortie; int c;
inputFile = new File("outagain.txt"); outputFile = new File("outagainBytes.txt");
try { entree = new FileInputStream(inputFile); sortie = new FileOutputStream(outputFile); } catch (FileNotFoundException e){ System.err.println(e.getMessage()); System.exit(-1); }
Et bien : - sortie n'est pas initialisée lors de sa déclaration - si le new FileOutputStream() qui initialise entree jette une exception, sortie n'aura pas été executée.
Effectivement, ce cas ne peut pas arriver puisque vous sortez de votre programme en cas d'exception, mais le compilateur ne le voit pas.
Donc initialisez entree et sortie avec null lors de leur déclaration.
Latyr_Dev wrote:
Bonjour
Quand j'essaie de compiler le code ci dessous j'ai un message d'erreur
d'Eclipse disant :
"La variable locale sortie peut ne pas avoir été initialisée"
Les variable en cause sont entree et sortie aux lignes 45-46 ; 56-57.
Pourquoi ?
Merci d'avance
/*
* Créé le 8 juin 2004
*
* Pour changer le modèle de ce fichier généré, allez à :
* Fenêtre>Préférences>Java>Génération de code>Code et
commentaires
*/
/**
* @author JLF928
*
* Pour changer le modèle de ce commentaire de type généré, allez à :
* Fenêtre>Préférences>Java>Génération de code>Code et
commentaires
*/
import java.io.*;
public class CopyBytes {
public static void main(String[] args) {
//Déclaration des variables
File inputFile;
File outputFile;
FileInputStream entree;
FileOutputStream sortie;
int c;
inputFile = new File("outagain.txt");
outputFile = new File("outagainBytes.txt");
try {
entree = new FileInputStream(inputFile);
sortie = new FileOutputStream(outputFile);
}
catch (FileNotFoundException e){
System.err.println(e.getMessage());
System.exit(-1);
}
Et bien :
- sortie n'est pas initialisée lors de sa déclaration
- si le new FileOutputStream() qui initialise entree jette une
exception, sortie n'aura pas été executée.
Effectivement, ce cas ne peut pas arriver puisque vous sortez de votre
programme en cas d'exception, mais le compilateur ne le voit pas.
Donc initialisez entree et sortie avec null lors de leur déclaration.
Quand j'essaie de compiler le code ci dessous j'ai un message d'erreur d'Eclipse disant : "La variable locale sortie peut ne pas avoir été initialisée" Les variable en cause sont entree et sortie aux lignes 45-46 ; 56-57.
Pourquoi ?
Merci d'avance
/* * Créé le 8 juin 2004 * * Pour changer le modèle de ce fichier généré, allez à : * Fenêtre>Préférences>Java>Génération de code>Code et commentaires */
/** * @author JLF928 * * Pour changer le modèle de ce commentaire de type généré, allez à : * Fenêtre>Préférences>Java>Génération de code>Code et commentaires */ import java.io.*;
public class CopyBytes { public static void main(String[] args) { //Déclaration des variables File inputFile; File outputFile; FileInputStream entree; FileOutputStream sortie; int c;
inputFile = new File("outagain.txt"); outputFile = new File("outagainBytes.txt");
try { entree = new FileInputStream(inputFile); sortie = new FileOutputStream(outputFile); } catch (FileNotFoundException e){ System.err.println(e.getMessage()); System.exit(-1); }
Et bien : - sortie n'est pas initialisée lors de sa déclaration - si le new FileOutputStream() qui initialise entree jette une exception, sortie n'aura pas été executée.
Effectivement, ce cas ne peut pas arriver puisque vous sortez de votre programme en cas d'exception, mais le compilateur ne le voit pas.
Donc initialisez entree et sortie avec null lors de leur déclaration.
Francis JUGE-BOIRARD
Latyr_Dev wrote:
Bonjour
Quand j'essaie de compiler le code ci dessous j'ai un message d'erreur d'Eclipse disant : "La variable locale sortie peut ne pas avoir été initialisée" Les variable en cause sont entree et sortie aux lignes 45-46 ; 56-57.
Pourquoi ?
Merci d'avance
/* * Créé le 8 juin 2004 * * Pour changer le modèle de ce fichier généré, allez à : * Fenêtre>Préférences>Java>Génération de code>Code et commentaires */
/** * @author JLF928 * * Pour changer le modèle de ce commentaire de type généré, allez à : * Fenêtre>Préférences>Java>Génération de code>Code et commentaires */ import java.io.*;
public class CopyBytes { public static void main(String[] args) { //Déclaration des variables File inputFile; File outputFile; FileInputStream entree; FileOutputStream sortie; // Solution FileOutputStream sortie = null;
int c;
inputFile = new File("outagain.txt"); outputFile = new File("outagainBytes.txt");
finally { System.out.println("Closing Streams..."); try { entree.close(); sortie.close(); } catch (IOException e) { System.out.println("Erreur à la fermeture des Streams..."); System.err.println(e.toString()); } }; } }
Latyr_Dev wrote:
Bonjour
Quand j'essaie de compiler le code ci dessous j'ai un message d'erreur
d'Eclipse disant :
"La variable locale sortie peut ne pas avoir été initialisée"
Les variable en cause sont entree et sortie aux lignes 45-46 ; 56-57.
Pourquoi ?
Merci d'avance
/*
* Créé le 8 juin 2004
*
* Pour changer le modèle de ce fichier généré, allez à :
* Fenêtre>Préférences>Java>Génération de code>Code et
commentaires
*/
/**
* @author JLF928
*
* Pour changer le modèle de ce commentaire de type généré, allez à :
* Fenêtre>Préférences>Java>Génération de code>Code et
commentaires
*/
import java.io.*;
public class CopyBytes {
public static void main(String[] args) {
//Déclaration des variables
File inputFile;
File outputFile;
FileInputStream entree;
FileOutputStream sortie;
// Solution FileOutputStream sortie = null;
int c;
inputFile = new File("outagain.txt");
outputFile = new File("outagainBytes.txt");
Quand j'essaie de compiler le code ci dessous j'ai un message d'erreur d'Eclipse disant : "La variable locale sortie peut ne pas avoir été initialisée" Les variable en cause sont entree et sortie aux lignes 45-46 ; 56-57.
Pourquoi ?
Merci d'avance
/* * Créé le 8 juin 2004 * * Pour changer le modèle de ce fichier généré, allez à : * Fenêtre>Préférences>Java>Génération de code>Code et commentaires */
/** * @author JLF928 * * Pour changer le modèle de ce commentaire de type généré, allez à : * Fenêtre>Préférences>Java>Génération de code>Code et commentaires */ import java.io.*;
public class CopyBytes { public static void main(String[] args) { //Déclaration des variables File inputFile; File outputFile; FileInputStream entree; FileOutputStream sortie; // Solution FileOutputStream sortie = null;
int c;
inputFile = new File("outagain.txt"); outputFile = new File("outagainBytes.txt");