поэтому я написал код в своем проекте, где я сохранил несколько голосов в строках в отдельном файле. Затем я читаю этот файл и извлекаю голоса в строках в одномерный массив, затем мне нужно увеличивать их, как если бы пользователь вводил 1, 1 голос добавляется в первую строку, если пользователь вводит 2, один голос увеличивается до 2 ряда и тд. После этого мне нужно сохранить этот увеличенный массив с добавленными голосами в тот же файл (перезаписать), откуда они были изначально извлечены.
Я сталкиваюсь с двумя проблемами: во-первых, когда пользователь вводит 1, фактически выполняется 7 приращений, потому что цикл выполняется 7 раз, когда длина массива равна 7. Вторая проблема, после перезаписи файла, показывает результаты с увеличенными голосами в выходных данных, но файл становится пустым, и при повторном запуске он показывает 0,0,0,0 .... даже после использования output.close () в конце.
Пожалуйста, предложите, я должен представить проект завтра, и еще есть, что написать, если кто-то мог бы, пожалуйста, одолжить 2,3 часа, чтобы помочь, было бы здорово.
public static int[] voteCasting(String resultFile) {
String[] votesArray = new String[7];
int[] votesConverted = new int[votesArray.length];
try {
String partyVotes = "";
int castedVotes;
int i = 0;
Scanner uI = new Scanner(System.in);
Scanner rF = new Scanner (new File(resultFile));
int userInput = uI.nextInt();
while (rF.hasNext()) {
partyVotes = rF.next();
votesArray[i]= partyVotes;
votesConverted[i] = Integer.parseInt(votesArray[i]);
i++;
if (userInput == 1) {
votesConverted[0] = ++votesConverted[0];
}
else if (userInput == 2) {
votesConverted[1] = votesConverted[1]++;
}
else if (userInput == 3) {
votesConverted[2] = votesConverted[2]++;
}
else if (userInput == 4) {
votesConverted[3] = votesConverted[3]++;
}
else if (userInput == 5) {
votesConverted[4] = votesConverted[5]++;
}
else if (userInput == 6) {
votesConverted[6] = votesConverted[6]++;
}
else if (userInput == 7) {
votesConverted[7] = votesConverted[7]++;
}
}
PrintWriter wF = new PrintWriter(resultFile);
while ( rF.hasNext()) {
wF.write(votesConverted[i]);
i++;
}
wF.flush();
wF.close();
} catch (IOException ex) {
Logger.getLogger(ProjectTesting.class.getName()).log(Level.SEVERE, null, ex);
}
return votesConverted;
}