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.
A voir également:
- Erreur : java.lang.nullpointerexception
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Erreur 4101 france tv - Forum Lecteurs et supports vidéo
- Erreur 4201 france tv ✓ - Forum Réseaux sociaux
- Code erreur f3500-31 ✓ - Forum Bbox Bouygues
9 réponses
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 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 !
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:/?
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,
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,
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,
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,