- public class RundomAccessText {
- /**按num读取文本数据 0
- * 4->seek 15一行//15*5 75
- * 5->seek 18一行//18*6 108 +75=183
- * 偏移量的规律是:(n
- * @param args
- */
- public static void main(String[] args)throws Exception {
- getAccess(4);
- }
- public static void getAccess(int n)throws Exception{
- RandomAccessFile ra=new RandomAccessFile("C:\\Users\\末末\\Desktop\\rundom.txt","r");
- int seekLen=0;
- for(int i=4;i<=n;i++)
- seekLen+=(12+(i-3)*3)*(i+1);
- ra.seek(seekLen);
- for(int i=0;i<n+2;i++){
- System.out.println(ra.readLine());
- }
- ra.close();
- }
-
- }
复制代码 这个效率高点吧,不用全部把文件都读出来.只需要按偏移量读就行了.
关于读取的文件,我有设定.必须按我的文件格式来,不然偏移量计算会出错.当然也可以写成自动判断的,就是只读一行.列成字符串,判断长度.
你这个思路不好,因为解题的关键在于完全掌握.实现自动化.如果达不到这个要求,仅按需求手动做出来.没有多大意义...- * * * * *
- * 7 8 9 *
- * 6 1 2 *
- * 5 4 3 *
- * * * * *
- * * * * * *
- * 7 8 9 10 *
- * 6 1 2 11 *
- * 5 4 3 12 *
- * 16 15 14 13 *
- * * * * * *
- * * * * * * *
- *
- *
- *//测试
- *
- *
- * * * * * * *
复制代码 |