2015-01-31 4 views
0

Я пытаюсь создать уникальный код для пользователя, добавив его каждый раз, когда пользователь вводил информацию (час, минута, секунда ... и т. Д.). Например, первый пользователь получит 1000 после ввода, второй пользователь 1002, третий 1003 ... и т. Д. Теперь, с этим кодом, первый пользователь и другие пользователи всегда получают 1002. Как его исправить?Как добавить один в текстовый файл? (Java)

Integer hour = Integer.parseInt(hourField.getText()); 
Integer minute = Integer.parseInt(minuteField.getText()); 
Integer second = Integer.parseInt(secondField.getText()); 
Integer date = Integer.parseInt(dateField.getText()); 
Integer month = Integer.parseInt(monthField.getText()); 
Integer year = Integer.parseInt(yearField.getText()); 
Integer code= new Integer(1000); 
code=new Integer(code.intValue() + 1); 


try{ 

    FileWriter fw= new FileWriter("database.txt",true); 
    BufferedWriter bw=new BufferedWriter(fw); 
    code ++; 
    bw.write(hour+" "+minute+" "+second+" "+date+" "+month+" "+year+"  "+code+"\r\n"); 
    bw.flush(); 
    bw.close(); 

} 
+1

код, кажется, делает то, что его ожидали. Я не вижу никаких проблем. – SMA

+0

Вы можете использовать переменный внешний метод, который хранит последний код, или вы можете прочитать значение из файла – frunkad

+0

, почему использовать файл вместо базы данных для подсчета пользователей или какой-либо операции. Файлы могут быть изменены кем угодно, DB использует функцию 'auto_increment'. –

ответ

0

Как это исправить?

Вы должны прочитать файл, чтобы найти последний использованный код и начать с этого значения:

  • читать файл и разобрать его содержание, чтобы найти последний сгенерированный код, если файл пуст, использовать 1000.
  • приращения кода, это дает вам текущий код пользователя
  • написать обновленный код в файл
+0

Прошу прощения, если вы дадите мне пример, как читать файл? Я новичок жаль. – Roy187

0

Вы можете использовать другие Файл, который содержит code.txt последний код (последний код не весь код) и retrive его

try{ 
    InputStream in = new.FileInputStream(new File("code.txt")); 
    BufferedReader reader = new BufferedReader(new InputStreamReader(in)); 
    String code = ""; 
    String line; 
    while ((line = reader.readLine()) != null) { 
     code += line; 
    } 
    int cd = Integer.parseInt((code)); 
    reader.close(); 
} 
+0

Или если вы хотите использовать тот же файл, вы можете использовать 'code = line', затем найти последний индекс пространства, а затем использовать substribg для получения кода – frunkad

Смежные вопросы