鼻涕虫 发表于 2008-5-12 22:56

为什么文件输入和输出的数据会不同

我用RandomAccessFile读入两个字符串,但从文件中正常读出后,与原来的字符串用equals()比较发现出现不一样。文件数据输出后显示内容相同,是不是格式问题呢?

sunkaidong 发表于 2008-5-12 23:08

你的代码,看看呢

鼻涕虫 发表于 2008-5-13 12:52

public void land(){
                file.seek(0);
               
                String username=file.readLine();
                String pdno=file.readLine();
                 if(username.equals(new String(user.getText()))&&pdno.equals(new String(PD.getText()))){
                  
                           JOptionPane.showMessageDialog(null,"登录成功!");
                           setVisible(false);
                           CardManagement card=new CardManagement();
                           card.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                     
               }
                        
                 else JOptionPane.showMessageDialog(null,"登录失败,请重新输入");
                 }

鼻涕虫 发表于 2008-5-13 12:56

这是输入文件的方法:    public void writeCard() throws IOException{
            file.seek(file.length());
            file.writeChars(user+"\n");
            file.writeChars(PD+"\n");
         
        }

鼻涕虫 发表于 2008-5-13 12:59

try{
                     file=new RandomAccessFile("StorePD.dat","rw");
                     }
                   catch(IOException ex){
                     System.out.println(ex.getMessage());
                      System.exit(0);
                }
这是文件定义部分

鼻涕虫 发表于 2008-5-13 13:00

而且这样中文文件输出会变成乱码

鼻涕虫 发表于 2008-5-13 13:03

虽然这个问题我已经通过改用对象串行化解决了,但想知道究竟是什么原因,似乎是于JAVA不设计文件数据格式的问题。在文件存储数据是会有不同格式

sunkaidong 发表于 2008-5-13 13:15

是不是要把读到的数据trim到空格..还有汉字是双字节的..读写的时候要小心...

鼻涕虫 发表于 2008-5-13 13:19

我看过读入和读出时数据显示的效果。从文件读出是会发现数据显示时符号间间距变大,而且字体也有所变化。无论我是把读出后的数据重新声称字符串形式还是直接输出也一样

页: [1]

编程论坛