还是关于中文的问题。昨天搜了好多关于java中文的帖子,看了之后还是没有解决问题,所以只能自己发贴问,问题估计比较弱,大家不要骂我。-_-!是这样的,我的操作系统是简体中文win2000,本人现在也在国内,有地地道道的黄种中国人血统我用windows的记事本新建了一个txt文件,里面写了一句话:“哈哈abc”。然后在java中用RandomAccessFile操作此txt,我用readUTF()读会产生异常,后来发现好像这个readUTF()并不是简单的字符串,对文件要求还有一定限制,好像每个字符串前面还要加上两个字节的标记,指明字符串长度?总之我用记事本写的“哈哈abc”它是认不出来的。问题1:readUTF()在什么情况下使用啊?不会是只能用在那些用writeUTF()写的txt文件里吧,好像现在流行的各种字符串都不符合它的要求啊。我试着用WinHex更改了txt文件,加上了两个字节的标记,可以readUTF(),而且完全没有问题。后来我有用readLine()读,发现读出来的字符串为“??????abc”也就是说,两个中国字变成六个问号了。为什么readUTF()能读出中文,readLine()又不行了?我看了我的记事本中的字体——》字符集为GB2312,我也没按什么奇怪的字体。试着按昨天看到的帖子,用System.getProperty("file.encoding")查,系统的编码是“GBK”,又试着用System.out.println(new String(f.readLine().getByte("GB2312"), "GBK"));还是读不出来
总之就是一句话,我现在用java,连一个windows记事本写的txt文件都读不出来!~
实在不会了,请教一下大家。ps:鄙视一下java,nnd歧视中文