【发布时间】:2017-03-15 04:46:04
【问题描述】:
我有一个文件a.txt,其内容使用writeUTF() 编写,
Dog
Cat
Rat
现在,我在读回内容的同时,也在打印指针位置,指针位置不正确。
代码:
public static void main(String[] args) throws Exception
{
RandomAccessFile ra = new RandomAccessFile("a.txt", "rw");
System.out.println("Pointer: " + ra.getFilePointer());
ra.writeUTF("Dog\n");
ra.writeUTF("Cat\n");
ra.writeUTF("Rat");
ra.seek(0);
System.out.println(ra.readLine()+ " " + ra.getFilePointer());
ra.close();
}
输出:
Pointer: 0
Dog 6
1). 指针位置不应该是4吗?因为在阅读Dog 之后,它的位置是3,而在阅读\n 之后,它应该是4。 6 的显示效果如何?
2).另外,当我读取整个文件时,它显示的位置是17。但是只有9 字符、2 换行字符和1 EOF(我们是否也应该考虑这一点?)。
3). 如果我在Cat 之前写\n 而不是Dog\n,就像Dog \nCat 在writeUTF() 中一样,它会在之后输出不同的位置,即8阅读Dog。
代码:
public static void main(String[] args) throws Exception
{
RandomAccessFile ra = new RandomAccessFile("a.txt", "rw");
System.out.println("Pointer: " + ra.getFilePointer());
ra.writeUTF("Dog");
ra.writeUTF("\nCat");
ra.writeUTF("\nRat");
ra.seek(0);
System.out.println(ra.readLine()+ " " + ra.getFilePointer());
ra.close();
}
输出:
Pointer: 0
Dog 8
【问题讨论】:
标签: java io java-io randomaccessfile