Erreur java java.lang.NullPointerException
yuri648
Messages postés
785
Statut
Membre
-
yuri648 Messages postés 785 Statut Membre -
yuri648 Messages postés 785 Statut Membre -
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.
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.
Configuration: Windows XP Firefox 2.0.0.20
9 réponses
-
c vrai ta raison mais sa regle les pbs grace a cella l'algo marche tres bien
-
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 ! -
-
le prb c'est a l'instruction while(i<lis.length)
je ne sai pa pourkoi? -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
oui c vrai tu a raison mais comment je cherche les fichier dans D:/?
-
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 :)- 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,
-
-
je veux rechercher des fichier pdf dans tout D: et merci de m'aider
-
-
-
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,