I'm trying to read a file which contains:
Dante
Beatrice
3
5
and put them into an array. Then I will assign the values of each member of the array to static variables. when i run the main class of my project, it throws a NullPointerException starting from the line in bold T_T i dunno what to do T_T
can anyone please please help me? i badly need this for my project T_T
try{
BufferedReader loadPlayerPositions = new BufferedReader(new FileReader("/media/KEI-SAMA/CS11/JOKE CS11/KnowGoMilestone5/playerpositions.txt"));
String line = loadPlayerPositions.readLine();
while (line!=null) {
System.out.println("Line read: "+line);
line = loadPlayerPositions.readLine();
}
} catch (Exception e) {
System.out.println("Exception: "+e.getMessage());
}
With that way you read each line.
Do some checking in case the file doesn't have all 4 lines that you want.
You get the exception at that line: info[0] = Players.nameOfPlayer1.toString(); probably because Players.nameOfPlayer1 is null
Last edited by javaAddict; Sep 30th, 2009 at 7:17 am.
javaAddict and ejosiah, thanks for your help!! :]
i've initialized the variables,
i've increased the array size to 4,
now it throws the IOException T_T
Last edited by keicola; Sep 30th, 2009 at 10:08 am.
I tried putting e.printStackTrace() but it didn't accept it saying that "void" cannot be used. When i checked, printStackTrace() was "void" after all. I tried using getMessage() and I got a message saying "Stream closed" when I tried running the program again.
I tried putting e.printStackTrace() but it didn't accept it saying that "void" cannot be used. When i checked, printStackTrace() was "void" after all. I tried using getMessage() and I got a message saying "Stream closed" when I tried running the program again.
I added e.printStackTrace just as you have instructed. After running the program, the IOException points to the line in bold. This were the lines that appeared at the bottom tab:
java.io.IOException: Stream closed
at java.io.BufferedReader.ensureOpen(BufferedReader.java:97)
at java.io.BufferedReader.readLine(BufferedReader.java:292)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at knowgomilestone4.StateOfGame.loadPositions
(StateOfGame.java:67)
at knowgomilestone4.StoryLine.mainMenu(StoryLine.java:64)
at knowgomilestone4.PlayEngine.main(PlayEngine.java:37)
StateOfGame.loadPositions is the method below Storyline.mainMenu and PlayEngine.main are methods that call on StateOfGame.loadPositions so I think the problem may only be in the StateOfGame.loadPositions method.
for (int l = 0; l < info.length; l++){
info[l] = loadPlayerPositions.readLine();
info[0] = Players.nameOfPlayer1.toString();
info[1] = Players.nameOfPlayer2.toString();
info[2] = Players.loadplayer1currentblock;
info[3] = Players.loadplayer2currentblock;
Players.loadCurrentPositions();
Players.currentPositions();
loadPlayerPositions.close();
}
You are inside the loop, you close the BufferedReader and when the loop runs again you try to read from a closed BufferedReader. When you close the BufferedReader you cannot read from it again. Close it after you are done reading.
Also I believe that you should check if the line read: info[l] = loadPlayerPositions.readLine(); is not null in case the file has less than 4 line
Either the thread starter or a moderator has marked this thread as solved. You can most likely trust the responses and answers given. There is most likely no reason for any further responses to be posted here. If you have a related question, please start a new thread in this forum instead.
This thread is more than three months old
No one has posted to this discussion for at least three months. Please let old threads die and do not reply to them unless you feel you have something new and valuable to contribute that absolutely must be added to make the discussion complete. Otherwise, please start a new thread in this forum instead.