Obtenir Exception de Pointeur Null lors de l'utilisation de la fonction isEmpty() la méthode
Je suis en train de mettre en œuvre une possibilité de connexion pour mon programme, mais elle retourne une exception de pointeur null. Je comprends que ce qui se passe quand vous vous référez à un endroit de la mémoire qui n'a rien en elle, mais aussi loin que je peux voir, je n'ai instancié tous mes objets - s'il vous plaît corrigez-moi si je me trompe!
Je suis en train de mettre en œuvre un utilisateur ajouter la fonctionnalité: j'ai une liste de noms d'utilisateurs et les mots de passe et j'ai déjà une méthode qui lit ce fichier et le stocke dans un tableau. Je veux écrire une nouvelle connexion à la liste alors j'ai écrit une nouvelle méthode qui convertit ce tableau pour une liste de tableaux et finira par écrire une nouvelle connexion, puis écrire le fichier de Connexion à nouveau. Le problème est que je suis l'Exception de Pointeur Null.
Méthode 1:
public String[] readFile(){
ArrayList<String> dataList = new ArrayList<String>();
String Line;
try {
String line = br.readLine();
do {
dataList.add(Line);
line = br.readLine();
}
while (!line.isEmpty());
br.close ();
}
catch (Exception e) {
e.printStackTrace();
}
String[] dataArr = new String[dataList.size()];
dataArr = dataList.toArray(dataArr);
return dataArr; //Returns an array containing the separate lines of the file
}
Méthode 2:
public void addNewUser (String username, String password){
String[] dataArr = readFile(); //Read in the list of profiles and store it in an array
ArrayList<String> dataAL = new ArrayList<String>(Arrays.asList(dataArr)); //store array of profiles as ArrayList
dataAL.add(username + "\t" + password);
}
OriginalL'auteur user1058210 | 2011-12-26
Vous devez vous connecter pour publier un commentaire.
Vous sont probablement de pointeur null ici
changer de
Si vous prêtez attention à l'exception de la trace de la pile, vous devriez voir la ligne exacte où l'exception est soulevée
(bool && bool2)
est fausse, le côté droit ne sera pas évaluée. Donc, siline
estnull
puis!line.isEmpty()
ne sera pas exécutée.Merci pour la réponse rapide Pangea! Et merci pour l'explication, user1031312!
accepter cette réponse si c'est en effet la réponse à la question ur
OriginalL'auteur Aravind R. Yarram
BufferedReader.readLine() renvoie null si la fin du flux est atteinte. Donc, vous voulez
OriginalL'auteur Francis Upton
De modifier le corps de votre
try
bloc:Si vous voulez ignorer les lignes vides, changer à cela:
Les autres réponses proposées jusqu'à présent arrêter la lecture à la première ligne vide. (Si vous n'avez pas de lignes vides, alors vous n'avez pas toujours besoin d'appeler
isEmpty()
.)OriginalL'auteur Ted Hopp
Je ne comprends pas pourquoi vous ajoutez des valeurs null à la dataList dans readFile méthode. De toute façon, j'ai refait votre code:
Méthode 1:
Méthode 2:
OriginalL'auteur bchetty