以下是我的案例:
到目前为止,我和我的小组设法从外部文件中读取信息并将其放在JTable中。但我们需要一个更新按钮。所以我们猜测我们应该在编辑内部的东西之后从JTable中获取所有信息,并将其替换为同一文件中的当前信息。所以我们认为我们必须覆盖旧文件。
到目前为止,我们得到了这个:(对于int i ...是代码的一部分,但无法将其置于灰色区域内:P)
for(int i = 0; i < model.getRowCount(); i++) {
p += model.getValueAt(i, 0) + " "
+ model.getValueAt(i, 1) + " "
+ (Integer) model.getValueAt(i, 2) + " "
+ model.getValueAt(i, 3) + " "
+ (Integer)model.getValueAt(i, 4) + " "
+ model.getValueAt(i, 5) + " "
+ model.getValueAt(i, 6) + " "
+ model.getValueAt(i, 7) + " "
+ (Integer)model.getValueAt(i, 8) + "\n";
}
// Update File
SaveMember sm = new SaveMember();
sm.update(p);
在我们的SaveMember.java中,我们得到了:
public void update(String x) throws Exception {
File f = new File("Members/Members.txt");
PrintStream output = new PrintStream(f);
output.print(x);
所以到现在我们去更改数据并按下按钮更新时,它根本不做任何事情,并且不会用新的替换旧数据..感谢阅读! :)
答案 0 :(得分:0)
我不确定。如果您已经仔细检查过您的代码是否已执行(可能您忘记将ActionListener附加到按钮 - 我们都会不时地执行此操作...)尝试刷新输出流并在之后关闭流。
答案 1 :(得分:0)
首先检查for循环中的代码是否完全执行。在for循环后设置断点并检查字符串 p 。如果您不熟悉调试,请使用System.out.println(p)
将字符串打印到控制台。
如果您的代码未执行:请检查您的代码所在方法未调用的原因。也许您忘记将动作侦听器附加到更新按钮,或者动作侦听器在某些情况下会提前返回。
如果您的代码已执行:您如何处理 update 方法引发的异常?确保使用记录器记录它或将其打印到控制台(再次通过System.out.println(exc)
)。如果您收到 FileNotFoundException ,则该文件的路径不正确。