为什么文件输入和输出的数据会不同
我用RandomAccessFile读入两个字符串,但从文件中正常读出后,与原来的字符串用equals()比较发现出现不一样。文件数据输出后显示内容相同,是不是格式问题呢?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,"登录失败,请重新输入");
} 这是输入文件的方法: public void writeCard() throws IOException{
file.seek(file.length());
file.writeChars(user+"\n");
file.writeChars(PD+"\n");
} try{
file=new RandomAccessFile("StorePD.dat","rw");
}
catch(IOException ex){
System.out.println(ex.getMessage());
System.exit(0);
}
这是文件定义部分 而且这样中文文件输出会变成乱码 虽然这个问题我已经通过改用对象串行化解决了,但想知道究竟是什么原因,似乎是于JAVA不设计文件数据格式的问题。在文件存储数据是会有不同格式 是不是要把读到的数据trim到空格..还有汉字是双字节的..读写的时候要小心... 我看过读入和读出时数据显示的效果。从文件读出是会发现数据显示时符号间间距变大,而且字体也有所变化。无论我是把读出后的数据重新声称字符串形式还是直接输出也一样
页:
[1]
