Reputation: 23
I'm trying to make a simple highscore system for a minesweeper game. However i keep getting a file not found exception, and i've tried to use the full path for the file aswell.
package minesweeper;
import java.io.*;
import java.util.*;
public class Highscore{
public static void submitHighscore(String difficulty) throws IOException{
int easy = 99999;
int normal = 99999;
int hard = 99999;
//int newScore = (int) MinesweeperView.getTime();
int newScore = 10;
File f = new File("Highscores.dat");
if (!f.exists()){
f.createNewFile();
}
Scanner input = new Scanner(f);
PrintStream output = new PrintStream(f);
if (input.hasNextInt()){
easy = input.nextInt();
normal = input.nextInt();
hard = input.nextInt();
}
output.flush();
if(difficulty.equals("easy")){
if (easy > newScore){
easy = newScore;
}
}else if (difficulty.equals("normal")){
if (normal > newScore){
normal = newScore;
}
}else if (difficulty.equals("hard")){
if (hard > newScore){
hard = newScore;
}
}
output.println(easy);
output.println(normal);
output.println(hard);
}
//temporary main method used for debugging
public static void main(String[] args) throws IOException {
submitHighscore("easy");
}
}
Upvotes: 0
Views: 7516
Reputation: 116306
You don't reveal on which line of code the exception is emitted. (Note: not posting all information you have about the problem reduces your chances of getting useful answers.)
However, my hunch is that it comes from the second call shown below, in which case the problem lies in trying to open the file twice:
Scanner input = new Scanner(f);
PrintStream output = new PrintStream(f);
Upvotes: 1
Reputation: 24507
Have you tried this?
if(f.isFile())
System.out.println("Yes, we have a file");
if(f.canWrite())
System.out.println("Yes, we have can write to the file");
Upvotes: 0
Reputation: 8756
Have you checked that the file exists and you have access rights for it?
Upvotes: 0