readUTF在随机访问文件中的复杂性

时间:2014-08-16 07:57:58

标签: java randomaccessfile

我现在已经解决了这个问题一个星期......我找不到这个问题。 我正在比较2个字符串。首先是来自用户输入,然后第二个来自随机访问文件读取。第一个字符串是转换为字符串的密码,第二个字符串是转换为写入随机访问文件的字符串的密码。 这是我的代码片段。

public boolean isRegistered(String pass, int id){
        boolean here = false;
        int i = 0;
        pass = padding(pass);
        String s;
        try{
            access = new RandomAccessFile(file, "r");
            do{
                access.seek(i*RECORD);
                access.getFilePointer();
                if(id == access.readInt()){
                    access.seek(i*RECORD+ID_SIZE);
                    access.getFilePointer();
                    s = String.valueOf(access.readUTF());
                    System.out.println("read s = "+s);
                    System.out.println("password is ="+pass);
                    System.out.println("read s.length = "+s.length());
                    System.out.println("pass.length = "+pass.length());
                    if(pass.equals(s){
                        here = true;
                        break;
                    }else{
                        System.out.println("Wrong password");
                        here = false;
                        break;
                    }
                }
                i++;
            }while(access.getFilePointer()!= access.length());
            access.close();
        }catch(Exception e){
            JOptionPane.showMessageDialog(null,"isRegistered "+e.getMessage());
        } 
        return here;
    }

我的文件包含完全相同的密码,因此它应该返回true。但不幸的是

updated已经......我真的需要你的帮助。感谢您花时间阅读此内容:)

//我知道问题:) 字符串应该具有相同的大小和.equals应该强加。谢谢:)

此代码现在正在使用

0 个答案:

没有答案