Précédent   Forum des professionnels en informatique > Java > Général Java > Java & Mobiles > Android
Android Forum d'entraide sur Android, la plateforme mobile de Google pour téléphones portables et Smartphones. Avant de poster -> FAQ Android
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/02/2012, 18h23   #1
Futur Membre du Club
 
Inscription : octobre 2005
Messages : 71
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 71
Points : 19
Points : 19
Par défaut Laisser un FileWriter ouvert

Bonjour,

Je débute et j'ai un problème avec un FileWriter.

J'ai un NullPointerException sur la dernière ligne de ma méthode "onCreate".
Je pense que ça vient du fait que mon FileWriter est instancié dans ma procédure "filecreate" et n'est pas disponible dans ma méthode "onCreate" mais je ne sais pas comment remédier à cela.

Quelqu'un saurait-il m'expliquer comment procéder ?
Code :
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
public class MonActivity extends Activity {
 
Writer filewriter;
File kml;
 
public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        createfile();
filewriter.append("suite");          
       filewriter.close();
}
 
public void createfile()
    {
 
        Date d = new Date();
        SimpleDateFormat f = new SimpleDateFormat("yyyyMMddHHmm");
        String nomfichier = f.format(d);
        File kml = new File("/sdcard/", nomfichier + ".kml");
 
        try {            
            FileWriter filewriter = new FileWriter(kml,false);            
            filewriter.append("debut");
        } catch (IOException e) {
            Toast.makeText( getApplicationContext(),e.getMessage(),Toast.LENGTH_SHORT ).show();  
        }
    }
}
Merci d'avance pour votre aide.
stolken est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/02/2012, 23h09   #2
Membre habitué
 
Avatar de eric-m
 
Homme Éric
Chef de projet MOA
Inscription : mars 2011
Messages : 51
Détails du profil
Informations personnelles :
Nom : Homme Éric
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Chef de projet MOA
Secteur : Transports

Informations forums :
Inscription : mars 2011
Messages : 51
Points : 123
Points : 123
Ta variable filewriter est local à la procédure createfile
remplace ton code par
Code :
1
2
3
4
 
try {			
            filewriter = new FileWriter(kml,false);            
            filewriter.append("debut");
et là l'instanciation se fera bien sur la variable de classe filewriter.
eric-m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/02/2012, 23h22   #3
Futur Membre du Club
 
Inscription : octobre 2005
Messages : 71
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 71
Points : 19
Points : 19
Citation:
Envoyé par eric-m Voir le message
Ta variable filewriter est local à la procédure createfile
remplace ton code par
Code :
1
2
3
4
 
try {            
            filewriter = new FileWriter(kml,false);            
            filewriter.append("debut");
et là l'instanciation se fera bien sur la variable de classe filewriter.
Merci de ta réponse mais je ne comprends très bien la différence avec mon code ?
stolken est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/02/2012, 23h40   #4
Membre habitué
 
Avatar de eric-m
 
Homme Éric
Chef de projet MOA
Inscription : mars 2011
Messages : 51
Détails du profil
Informations personnelles :
Nom : Homme Éric
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Chef de projet MOA
Secteur : Transports

Informations forums :
Inscription : mars 2011
Messages : 51
Points : 123
Points : 123
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class MonActivity extends Activity {
 
FileWriter filewriter; globale a la classe
File kml;
 
public void onCreate(Bundle savedInstanceState) {
       
filewriter.append("suite");       globale   
       filewriter.close();
}//OnCreate
 
public void createfile()
    {
 ...
        try {            
            FileWriter filewriter = new FileWriter(kml,false);   ici locale vu seulement dans la méthode         
            filewriter.append("debut");
....
    }//createfile
}//class MongpsloggerActivity
filewriter est different de filewriter

Donc dans create si tu fais filewriter = new FileWriter(kml,false);
tu instancies filewriter et non pas une nouvelle variable déclaré en locale.

Je ne sais pas si je suis clair, en tout cas dis moi si ca résout ton problème/
eric-m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/02/2012, 01h46   #5
Futur Membre du Club
 
Inscription : octobre 2005
Messages : 71
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 71
Points : 19
Points : 19
Problème résolu !
Merci beaucoup.

Mon problème était que lorsque j'instanciais, je créais un nouvel objet à portée locale.
stolken est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h35.


 
 
 
 
Partenaires

Hébergement Web