有一个txt文件 我向只读取最后3行的数据 怎么弄?最好给个例子。3Q.
seek()参数是距离读写开头的位置,还是文件开头的位置?
刚接触RandomAccessFile不是很了解,我要一行一行的读取怎么每一行的字节数不是固定的,seek怎么设置 还是用别的方法?
还有比如说 我readLine从末尾读了1行 那么再用getFilePointer()获取读写位置就在倒数第二行了。
------解决方案--------------------
LZ你结帖率太低了,所以没人回你。。
尝试RandomAccessFile吧。它可以帮助你像c一样定位文件指针
------解决方案--------------------
------解决方案--------------------
- Java code
/* * 打印一个给定的TXT文件的后20行 */ public static void readTxt() { Map dataMap = new HashMap(); FileReader file; int num = 0; try { file = new FileReader("D:/data.txt"); BufferedReader in = new BufferedReader(file); while (in.ready()) { // 读入每行数据,dataMap中始终只会保存最后读到的20条记录 dataMap.put((num % 20), in.readLine()); num++; } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } if (num < 20) { // 文件中记录不超过20行 for (int i = 0; i < num; ++i) { System.out.println(dataMap.get(i)); } } else { int key = num % 20; for (int i = key; i < 20; ++i) { System.out.println(dataMap.get(i)); } for (int i = 0; i < key; ++i) { System.out.println(dataMap.get(i)); } } }