带有csv文件的Java Swing应用程序[已关闭]

7y4bm7vi  于 2023-05-04  发布在  Java
关注(0)|答案(1)|浏览(132)

已关闭,此问题需要details or clarity。目前不接受答复。
**想改善这个问题吗?**通过editing this post添加详细信息并澄清问题。

昨天关门了。
Improve this question
我正在为我的项目构建一个java swing应用程序。我对这个代码有问题

private void bkDeleteMouseClicked(java.awt.event.MouseEvent evt) {                                      
        // Get the index of the selected row
        int selectedRow = bkTable.getSelectedRow();

        // Check if a row is selected
        if (selectedRow == -1) {
            JOptionPane.showMessageDialog(this, "Please select a row to delete");
            return;
        }

        // Delete the selected row from the CSV file
        try (Scanner scanner = new Scanner(new File("book_data.csv"));
            FileWriter writer = new FileWriter("book_data_temp.csv")) {
            while (scanner.hasNextLine()) {
                String line = scanner.nextLine();
                String[] row = line.split(",");
                if (row.length > 0 && row[0].equals(bkTable.getValueAt(selectedRow, 0))) {
                    continue; // Skip the selected row
                }
                writer.write(line + "\n");
            }
        } catch (IOException e) {
            JOptionPane.showMessageDialog(this, "Error deleting row from file");
            return;
        }

        // Delete the original file and rename the temporary file
        File originalFile = new File("book_data.csv");
        File tempFile = new File("book_data_temp.csv");
        if (originalFile.delete()) {
            if (!tempFile.renameTo(originalFile)) {
                JOptionPane.showMessageDialog(this, "Error renaming file");
                return;
            }
        } else {
            JOptionPane.showMessageDialog(this, "Error deleting file");
            return;
        }

        // Delete the selected row from the Table
        DefaultTableModel model = (DefaultTableModel) bkTable.getModel();
        model.removeRow(selectedRow);
        JOptionPane.showMessageDialog(this, "Book Records deleted Sucessfully");
    }

当在不同的机器上运行该项目,我得到的文件重命名和删除的问题.怎么修?

9nvpjoqh

9nvpjoqh1#

1.您的第一个catch块(“Error deleting row from file”)接受异常(e),并且不对它做任何事情-这个异常解释了为什么它不工作。我们不能告诉你,但这个例外可以告诉你。所以,不要把它扔掉,好好利用它。打印或记录或对该异常执行某些操作。
1.您正在使用过时的文件API。它的许多问题之一是它不能正确地报告错误。停止使用;使用java.nio.file代替。它重命名(Files.move(from, to))在失败时抛出异常,而不是返回无用的布尔值。异常的内容会告诉你为什么它不工作。

相关问题