Одна функция удаляет и переименовывает файлы, а другая не работает.Зачем? - PullRequest
0 голосов
/ 19 марта 2019

Обе эти функции являются частью приложения 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) {}
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...