Bonne journée!Écrire un fichier en Java
J'ai un projet (jeu) qui doit être présenté demain matin. Mais j'ai découvert un bug en écrivant dans les meilleurs scores. J'essaie de créer un fichier texte et d'écrire le nom du SCORE dans l'ordre décroissant en utilisant le score comme base.
PAR EXEMPLE:
SCORE NAME RANK
230 God
111 Galaxian
10 Gorilla
5 Monkey
5 Monkey
5 Monkey
NOTE Il y a aussi un RANG Mon code est le suivant:
public void addHighScore() throws IOException{
boolean inserted=false;
File fScores=new File("highscores.txt");
fScores.createNewFile();
BufferedReader brScores=new BufferedReader(new FileReader(fScores));
ArrayList vScores=new ArrayList();
String sScores=brScores.readLine();
while (sScores!=null){
if (Integer.parseInt(sScores.substring(0, 2).trim()) < score && inserted==false){
vScores.add(score+"\t"+player+"\t"+rank);
inserted=true;
}
vScores.add(sScores);
sScores=brScores.readLine();
}
if (inserted==false){
vScores.add(score+"\t"+player+"\t"+rank);
inserted=true;
}
brScores.close();
BufferedWriter bwScores=new BufferedWriter(new FileWriter(fScores));
for (int i=0; i<vScores.size(); i++){
bwScores.write((String)vScores.get(i), 0, ((String)vScores.get(i)).length());
bwScores.newLine();
}
bwScores.flush();
bwScores.close();
}
Mais si je saisis les trois chiffres: 60 Manny, le fichier serait comme ceci:
60 Manny
230 God
111 Galaxian
10 Gorilla
5 Monkey
5 Monkey
5 Monkey
Le problème est qu'il peut seulement lire 2 nombres parce que j'utilise sScores.substring(0, 2).trim())
. J'ai essayé de le changer en sScores.substring(0, 3).trim())
. mais devient une erreur car il a lu jusqu'à la partie du personnage. Quelqu'un peut-il m'aider à réviser mon code afin que je puisse lire jusqu'à 4 chiffres? Votre aide sera très appréciée.
A écrit la même chose: P – jjczopek
@jjc, tu avais raison. – jjnguy
faire que '.split (" + ")' –