2012-12-10 2 views
-1

Ceci est un projet de jeu. Après avoir présenté le projet et l'avoir exécuté sur une machine virtuelle, il a été encadré en noir. Il n'y a pas d'écran de jeu.FileIO exception lors de l'introduction du projet android

package com.badlogic.androidgames.jumper; 

import java.io.BufferedReader; 
import java.io.BufferedWriter; 
import java.io.IOException; 
import java.io.InputStreamReader; 
import java.io.OutputStreamWriter; 

import com.badlogic.androidgames.framework.FileIO; 

public class Settings { 
    public static boolean soundEnabled = true; 
    public final static int[] highscores = new int[] { 100, 80, 50, 30, 10 }; 
    public final static String file = ".superjumper"; 

    public static void load(FileIO files) { 
     BufferedReader in = null; 
     try { 
      in = new BufferedReader(new InputStreamReader(files.readFile(file))); // 这里报异常 
      soundEnabled = Boolean.parseBoolean(in.readLine()); 
      for(int i = 0; i < 5; i++) { 
       highscores[i] = Integer.parseInt(in.readLine()); 
      } 
     } catch (IOException e) { 
      // :(It's ok we have defaults 
     } catch (NumberFormatException e) { 
      // :/ It's ok, defaults save our day 
     } finally { 
      try { 
       if (in != null) 
        in.close(); 
      } catch (IOException e) { 
      } 
     } 
    } 

    public static void save(FileIO files) { 
     BufferedWriter out = null; 
     try { 
      out = new BufferedWriter(new OutputStreamWriter(
        files.writeFile(file))); 
      out.write(Boolean.toString(soundEnabled)); 
      out.write("\n"); 
      for(int i = 0; i < 5; i++) { 
       out.write(Integer.toString(highscores[i])); 
       out.write("\n"); 
      } 

     } catch (IOException e) { 
     } finally { 
      try { 
       if (out != null) 
        out.close(); 
      } catch (IOException e) { 
      } 
     } 
    } 

    public static void addScore(int score) { 
     for(int i=0; i < 5; i++) { 
      if(highscores[i] < score) { 
       for(int j= 4; j > i; j--) 
        highscores[j] = highscores[j-1]; 
       highscores[i] = score; 
       break; 
      } 
     } 
    } 
} 

I point d'arrêt et déboguer l'erreur est FileNotFoundException. Je ne peux pas trouver superjumper dans mmnt/SdCard.

Il n'y a pas de problème de code. Pourquoi a-t-il l'exception?

Répondre

1

Lors de la compilation de votre projet, le compilateur ne peut pas voir si le fichier ".superjumper" existe ou non.
Là, il lancera une exception s'il ne peut pas le trouver. Ce qui est le cas ici.

Vous devez connaître l'emplacement exact du fichier ".superjumper" que vous voulez charger.

Questions connexes