【问题标题】:Issue with filewriter and filereader文件写入器和文件读取器的问题
【发布时间】:2013-12-29 14:02:23
【问题描述】:

我制作了一个代码,用于在我制作的本地程序中更改密码。它工作得几乎很好,但我遇到了一个小问题。如果我将新密码更改为“”(无),正在读取密码的文件,如果我将该字段留空,则不起作用。如果我输入像“嘿”这样的普通密码,它就可以正常工作。密码存储在一个 txt 文件中,所以问题是,一个空的 JTextField 不等于一个空的日志文件。为什么?我需要解决这个问题。我希望它可以使用密码(无),但一些替代修复也很酷。

此代码检查密码:

check 是 readfile 中的字符串,password 是我的 textfield 中的字符串。

if(event.getSource()==tf&&password.equals(check)){
  try{
    Runtime.getRuntime().exec("C:\\Windows\\System32\\notepad C:\\Applications\\Infostore.txt");
  }catch(IOException ex){
    ex.printStackTrace();
  }
  System.exit(1);
}else{
  JOptionPane.showMessageDialog(null,"Wrong password");
}

密码创建器是一个普通的filewriter,从textfield中获取内容,写入txt文件。

【问题讨论】:

  • 如果你附上密码保存和检索代码更好..

标签: java jtextfield filereader filewriter


【解决方案1】:

在保存密码之前测试 JTextField 的值。

if (textField.getText()==null) passwd = "";

【讨论】:

    【解决方案2】:

    当扫描器读取您的文本文件时,如果它在文件末尾读取一个空字符串,它将假定该字符串是null。这就是为什么在完成对文件的写入后,使用BufferedWriter.newLine() 在文件末尾添加新行可能总是更好的原因。

    否则,如果您希望坚持不添加新行,或者它不起作用,请尝试将其添加到您的密码检查中:

    if(check == null)
    

    检查字符串是否为空的原因,就像我之前说的,可能是因为扫描器认为它是文件的结尾,并将check字符串返回为空。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-13
      • 2011-11-21
      • 2017-06-27
      • 1970-01-01
      • 2020-10-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多