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 {
s开发者_C百科ubmitHighscore("easy");
}
}
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);
Have you checked that the file exists and you have access rights for it?
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");
精彩评论