当前位置: 代码迷 >> J2SE >> 新手学java 倒着读入3行数据 如何实现
  详细解决方案

新手学java 倒着读入3行数据 如何实现

热度:267   发布时间:2016-04-24 02:25:48.0
新手学java 倒着读入3行数据 怎么实现
有一个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));            }        }    }
  相关解决方案