Обе эти функции являются частью приложения javafx, которое я создаю как продукт для колледжа.Первая функция работает отлично и не имеет никаких проблем, вторая делает нечто подобное, за исключением того, что она не удаляет Accounts.txt и не переименовывает Temp.txt в Accounts.txt.Я получаю желаемый результат, сохраненный в Temp.txt.Но я этого не хочу.Я хочу, чтобы Accounts.txt был удален, а Temp.txt занял его место.Я хочу, чтобы нужный результат был сохранен в Accounts.txt.
public void issueButtonClicked(String username) {
Product selectedProduct = table.getSelectionModel().getSelectedItem();
selectedProduct.setQuantity(selectedProduct.getQuantity() - 1);
table.getItems().set(table.getSelectionModel().getFocusedIndex(), selectedProduct);
long isbn = selectedProduct.getIsbn();
try {
FileReader fr = new FileReader("Accounts.txt");
BufferedReader br = new BufferedReader(fr);
FileWriter fw = new FileWriter("Temp.txt");
BufferedWriter bw = new BufferedWriter(fw);
PrintWriter pw = new PrintWriter(bw);
String s = br.readLine();
while(s != null) {
StringTokenizer st=new StringTokenizer(s, "~");
String usernameT = st.nextToken();
if(!usernameT.equals(username))
pw.println(s);
else
pw.println(s + "~" + isbn);
s=br.readLine();
}
br.close();
pw.close();
File file1 = new File("Accounts.txt");
File file2 = new File("Temp.txt");
file1.delete();
file2.renameTo(file1);
} catch(Exception e) {}
}
public void returnButtonClicked(String username) {
Product selectedProduct = table.getSelectionModel().getSelectedItem();
table.getItems().set(table.getSelectionModel().getFocusedIndex(), selectedProduct);
long isbn = selectedProduct.getIsbn();
try {
if(hasIsbn(username, isbn + "")) {
selectedProduct.setQuantity(selectedProduct.getQuantity() + 1);
try {
FileReader fr = new FileReader("Accounts.txt");
BufferedReader br = new BufferedReader(fr);
FileWriter fw = new FileWriter("Temp.txt");
BufferedWriter bw = new BufferedWriter(fw);
PrintWriter pw = new PrintWriter(bw);
String s = br.readLine();
while(s != null) {
StringTokenizer st=new StringTokenizer(s, "~");
String usernameT = st.nextToken();
if(!usernameT.equals(username))
pw.println(s);
else {
String passwordT = st.nextToken();
String ageT = st.nextToken();
String genderT = st.nextToken();
pw.print(usernameT + "~" + passwordT + "~" + ageT + "~" + genderT);
while(st.hasMoreTokens()) {
String isbnT = st.nextToken();
if(!isbnT.equals(isbn + ""))
pw.print("~" + isbnT);
}
pw.println();
}
s = br.readLine();
}
br.close();
pw.close();
File file1 = new File("Accounts.txt");
File file2 = new File("Temp.txt");
file1.delete();
file2.renameTo(file1);
} catch(Exception e) {}
}
else
AlertBox.display("Error", "You don't have this book");
} catch (Exception e) {}
}