当前位置: 代码迷 >> Java相关 >> 帮忙找一下错误
  详细解决方案

帮忙找一下错误

热度:187   发布时间:2010-05-26 17:49:35.0
帮忙找一下错误
提示: 作者被禁止或删除 内容自动屏蔽
2010-05-26 09:49:35
shenyun345

等 级:论坛游民
帖 子:32
专家分:10
注 册:2009-7-13
  得分:0 
import java.io.*;
  程序代码前面加上这个,不晓得是楼主写程序就没有这个还是贴代码的时候没有贴上来
  加了才能编译成功并运行,不过得出的结果不是楼主想要的,RandomAccessFile类我还没有接触到,
所以无法写出正确的程序出来,
----------------解决方案--------------------------------------------------------
回复 2楼 shenyun345
提示: 作者被禁止或删除 内容自动屏蔽
2010-05-26 12:10:14
linjx0123

等 级:贵宾
威 望:14
帖 子:279
专家分:1362
注 册:2006-4-7
  得分:10 
程序代码:
public class RandomAccessTest {

    public static void main(String[] args) throws IOException {
        try {
            RandomAccessFile raf = new RandomAccessFile("d://data//wof.txt",
                    "rw");
            System.out.println("请输入20个整数");
            int k[] = new int[20];
            for (int i = 0; i < 20; i++) {
                /**
                System.out.println("输入第" + (i + 1) + "个");
                BufferedReader br = new BufferedReader(new InputStreamReader(
                        System.in));
                String m = br.readLine();
                k[i] = Integer.parseInt(m.trim());
                System.out.println(k[i]);
               
*/
                //raf.writeInt(k[i]);
                raf.writeInt(i);//不需要从键盘输入,直接输入就可以了
            }
            raf.seek(12);
            while (true) {
                try {
                    int r =(int) raf.readInt();
                    System.out.println(r);
                } catch (EOFException e) {
                    break;
                }
            }

        } catch (RuntimeException e) {
            e.printStackTrace();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }

    }
}
题目要求从该文件的第12个字节开始,而楼主是从第一个字节开始raf.seek(1);
所以当然错误了。你从第一个字节开始读取,就会产生错误。因为int为4个字节的。
----------------解决方案--------------------------------------------------------
你查查readInt的用法就知道了。
----------------解决方案--------------------------------------------------------
  相关解决方案