mon ami et moi avons le même code exact, mais seulement le mien apparaît avec une ligne nulle. Nous sommes tous les deux très novices en matière de codage, donc nous ne savons pas vraiment quoi faire, ni comment y remédier, d'autant plus que cela semble fonctionner pour elle. Java me dit que monDeux personnes avec le même code, un seul a une exception NullPointerException?
StringTokenizer st= new StringTokenizer(bf.readLine());
est nulle. J'ai lu en ligne que je peux utiliser une méthode try-catch pour exécuter mon programme avec la ligne nulle. Cependant, ma fenêtre de terminal doit imprimer d'une certaine manière (pour mon professeur), donc je ne peux pas avoir la méthode try-catch en laissant une ligne d'impression supplémentaire quand je l'exécute. Si quelqu'un a des solutions, s'il vous plaît faites le moi savoir! Aussi, si quelqu'un pouvait expliquer comment un code peut avoir une ligne nulle pour une personne, et pas l'autre serait génial, parce que je ne sais vraiment pas pourquoi cela fonctionne pour elle, et pas moi.
Voici mon code complet, j'ai indiqué quelle ligne contient la ligne nulle.
import java.util.Scanner;
import java.io.*;
import java.util.*;
public class QuizGrading
{
public static void main (String[]args) throws IOException
{
///key part
System.out.println(" ");
BufferedReader bf = new BufferedReader(new FileReader("key.in"));
StringTokenizer st = new StringTokenizer(bf.readLine()); **(NULL)**
int num = Integer.parseInt(st.nextToken());
int [] key = new int[num];
st=new StringTokenizer(bf.readLine());
for (int i=0; i<num; i++)
{
int an = Integer.parseInt(st.nextToken());
key[i] = an;
}
///answer part
BufferedReader br = new BufferedReader(new FileReader("tenQuizzes.in"));
StringTokenizer answers = new StringTokenizer(br.readLine());
int stu=1;
int numq = Integer.parseInt(answers.nextToken());
for (int u=0; u<numq; u++)
{
int right=0;
answers = new StringTokenizer(br.readLine());
for (int s=0; s<num; s++)
{
int ans=Integer.parseInt(answers.nextToken());
if (ans==key[s])
{
right=right+1;
}
}
double percent = right*100/num;
System.out.println("There are "+right+" questions correct.");
System.out.println("Student "+stu+" scored "+percent+"%.");
System.out.println(" ");
stu=stu+1;
}
System.out.println(" ");
}
}
Il est fort probable que votre programme Java ne trouve pas le fichier 'key.in' et que vous obteniez une exception' NullPointerException' lorsque vous essayez d'y accéder. –
Le fichier key.in est vide. – usman
Vous ne devriez pas utiliser un 'FileReader' nu; cela utilisera le codage de caractères par défaut de votre plate-forme, et il peut différer d'une plateforme à l'autre. En outre, nous sommes en 2015, utilisez plutôt 'Files.newBufferedReader()' à la place. – fge