学习型 ASP/PHP/ASP.NET 主机 30元/年全能 ASP/PHP/ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付
发新话题
打印

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

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

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

TOP

你的代码,看看呢
学习需要安静。。海盗要重新来过。。

TOP

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,"登录失败,请重新输入");
             }

TOP

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

TOP

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

TOP

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

TOP

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

TOP

是不是要把读到的数据trim到空格..还有汉字是双字节的..读写的时候要小心...
学习需要安静。。海盗要重新来过。。

TOP

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

TOP

发新话题