Erreur java java.lang.NullPointerException

Fermé
yuri648 Messages postés 677 Date d'inscription mardi 30 décembre 2008 Statut Membre Dernière intervention 20 mai 2015 - 7 janv. 2009 à 10:44
yuri648 Messages postés 677 Date d'inscription mardi 30 décembre 2008 Statut Membre Dernière intervention 20 mai 2015 - 8 janv. 2009 à 15:40
Bonjour,
j'ai cette erreur et je ne sai pas d'ou vient:

Exception in thread "main" java.lang.NullPointerException
at pdf.<init>(pdf.java:30)
at nn.main(nn.java:11)

voila la classe pdf:

import java.io.File;
import java.util.Stack;


public class pdf {
public pdf()
{
Stack<String> pile=new Stack();
String dd="d:/";
String v;
int i;
boolean bol=false;
String h="pdf";
File[] lis=null;
i=0;




while(bol==false)
{
// dd=(String) pile.pop();
File g=new File(dd);

lis=g.listFiles();

i=0;


while(i<lis.length )
{
if(lis[i].isDirectory()==true){pile.push(lis[i].getPath()); }

else {
v=getExtension(lis[i]);
if(h.equals(v)){System.out.println("le fichier"+ lis[i]);}

}
i=i+1;
}

if(!pile.isEmpty()) {dd=(String) pile.pop(); }
else{bol=true;}
}

}





public static String getExtension(File f) {
if(f != null) {
String filename = f.getName();
int i = filename.lastIndexOf('.');
if(i>0 && i<filename.length()-1) {
return filename.substring(i+1).toLowerCase();
}
}
return null;
}

}
et la classe main:


import java.io.IOException;


public class nn {


public static void main (String arguments[]) throws IOException
{


pdf mm=new pdf();

}
}
et merci d'avence.
A voir également:

9 réponses

yuri648 Messages postés 677 Date d'inscription mardi 30 décembre 2008 Statut Membre Dernière intervention 20 mai 2015 7
8 janv. 2009 à 15:40
c vrai ta raison mais sa regle les pbs grace a cella l'algo marche tres bien
1
Bonsoir,

Le fameux null pointer exception, veut dire que tu fais appel à quelque chose qui est null.

Essai de voir si ce n'est pas ceci :

File[] lis=null;
i=0;

while(bol==false)
{
// dd=(String) pile.pop();
File g=new File(dd);

lis=g.listFiles();

Ici, tu instancies un objet g de type File, avec le chemin dd or dd n'est pas le chemin d'un répertoire tu n'as mis que D:/.

Donc comme ta variable lis est instanciée à null et que tu mets dedans g.listFiles (qui est null), je pense que ça vient de là.

Sauf erreur !
0
yuri648 Messages postés 677 Date d'inscription mardi 30 décembre 2008 Statut Membre Dernière intervention 20 mai 2015 7
7 janv. 2009 à 20:07
mais d:/ il a des repertoires
0
yuri648 Messages postés 677 Date d'inscription mardi 30 décembre 2008 Statut Membre Dernière intervention 20 mai 2015 7
7 janv. 2009 à 20:51
le prb c'est a l'instruction while(i<lis.length)
je ne sai pa pourkoi?
0
c'est parce que lis est null, d:/ n'est pas un répertoire, tu dois mettre d:/dossier par exemple.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
yuri648 Messages postés 677 Date d'inscription mardi 30 décembre 2008 Statut Membre Dernière intervention 20 mai 2015 7
7 janv. 2009 à 22:22
oui c vrai tu a raison mais comment je cherche les fichier dans D:/?
0
Après personnellement je ne m'y connais pas plus pour sélectionner tous les fichiers, je peux juste te dire où est ton erreur, personnellement je ne suis pas spécialisé dans ce domaine :)

Bonne chance :)
0
Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009 329 > Nixial
7 janv. 2009 à 22:39
De toutes façons la racine du système de fichiers est considéré comme un répertoire. J'ai d'ailleurs essayé chez moi sur c:/ et ce code a marché.
A mon avis c'est uniquement un problème de récurrence : à un moment dans l'exécution tu as un répertoire que tu affectes à lis qui est null ou je ne sais pas quoi, et c'est ça qui fait planter ton algo.

Cordialement,
0
yuri648 Messages postés 677 Date d'inscription mardi 30 décembre 2008 Statut Membre Dernière intervention 20 mai 2015 7
7 janv. 2009 à 22:29
je veux rechercher des fichier pdf dans tout D: et merci de m'aider
0
yuri648 Messages postés 677 Date d'inscription mardi 30 décembre 2008 Statut Membre Dernière intervention 20 mai 2015 7
7 janv. 2009 à 22:30
ok merci bcp
0
yuri648 Messages postés 677 Date d'inscription mardi 30 décembre 2008 Statut Membre Dernière intervention 20 mai 2015 7
8 janv. 2009 à 12:40
il m'ont dit d'utiliser try{} catch{}
0
Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009 329
8 janv. 2009 à 13:47
C'est une erreur d'utiliser un try/catch avec un NullPointerException.
Conceptuellement, si tu as un NullPointerException, c'est que tu as fait une opération non conforme, tu as un problème dans ton algorithme.

Le try/catch te permettra d'éviter le problème, mais c'est de la programmation dégueulasse (c'est une pauvre rustine sur un pneu pourri).

Cordialement,
0