좋은 하루 되세요!Java로 파일 쓰기
내일 아침에 제출해야하는 프로젝트 (게임)가 있습니다. 하지만 고득점을 기록 할 때 버그를 발견했습니다. 텍스트 파일을 만들고 SCORE NAME을 점수를 기준으로 내림차순으로 작성하려고합니다.
예를 들어:
SCORE NAME RANK
230 God
111 Galaxian
10 Gorilla
5 Monkey
5 Monkey
5 Monkey
거기 다음과 같이 내 코드 인 RANK이기도 참고 :
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();
}
는하지만 난 입력 세 개의 숫자 경우 : 60 매니이 파일은 다음과 같이 될 것이다 :
60 Manny
230 God
111 Galaxian
10 Gorilla
5 Monkey
5 Monkey
5 Monkey
문제는를 사용하기 때문에 2 개의 숫자 만 읽을 수 있다는 것입니다.. sScores.substring(0, 3).trim())
으로 변경하려고했습니다. 문자 부분까지 읽으므로 오류가 발생합니다. 누구든지 최대 4 개의 숫자를 읽을 수 있도록 내 코드를 수정하는 데 도움을 줄 수 있습니까? 귀하의 도움을 매우 높이 평가 될 것입니다.
같은 글을 쓰고 있었다 : P – jjczopek
@jjc, 네가 옳았다. – jjnguy
그'.split ("+")' –