File file=new File("1.txt")只是将1.txt封装成一个File对象,并没有去读写硬盘;FileWriter out=new FileWriter("2.txt"),很明显这里有两步动作,第一讲2.txt封装成File对象,接着去读写硬盘,创建2.txt文件
我想ACSII的范围有影响吧(-128 ~ 127) 刚好是 8个比特位的范围。
API说 :RandomAccessFile的readLine()方法从此文件读取文本的下一行。此方法可以从该文件的当前文件指针处成功地读取字节,直到到达行结束符或文件的末尾。每个字节都转换为一个字符,方法是采用该字符的低八位字节值,并将该字符的高八位设置为零。因此,此方法不支持完整的 Unicode 字符集。那么我想既然是去低八位,那就有可能因为不同的编码方式造成这低八位的值不一致而产生乱码。
而BufferedReader的readLine方法是:读取一个文本行。通过下列字符之一即可认为某行已终止:换行 ('\n')、回车 ('\r') 或回车后直接跟着换行,又不操作字节数组,当然可以操作非ASCII。
|