编写一个Java应用程序,利用RandomAccessFile类,把几个int型整数(1,2,3,4,5,6,7,8,9,10)写入到一个名字为tom.dat文件中,然后按相反顺序读出这些数据并显示在屏幕上。(注意,一个int型数据占4个字节)

解决方案 »

  1.   

    把几个int型整数(1,2,3,4,5,6,7,8,9,10)写入到一个名字为tom.dat文件中 try {
    RandomAccessFile r=new RandomAccessFile("tom.dat","rw");
    for(int i=1;i<11;i++){
    try {
    r.write(i);//写10个整数
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    } catch (FileNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }按相反顺序读出这些数据并显示在屏幕上。try {
    RandomAccessFile r=new RandomAccessFile("tom.dat","rw");
    try {
    long l=r.length();//返回此文件的长度
    while(l>0){
    r.seek(l-1);//设置到此文件开头测量到的文件指针偏移量,在该位置发生下一个读取或写入操作
    System.out.print(r.read()+" ");
    l--;
    }
    System.out.println();
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    } catch (FileNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
      

  2.   

    try {
                    RandomAccessFile r=new RandomAccessFile("tom.dat","rw");
                    try {
                        long l=r.length();//返回此文件的长度
                        while(l>0){
                            r.seek(l-1);//设置到此文件开头测量到的文件指针偏移量,在该位置发生下一个读取或写入操作
                            System.out.print(r.read()+" ");
                            l--;
                        }
                        System.out.println();
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                } catch (FileNotFoundException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
      

  3.   

    public class RandomAccessFileTester {
        public static void main(String[] args) throws IOException {
            RandomAccessFile randomAccessFile = new RandomAccessFile("c:/tom.dat", "rw");
            int i;
            for (i = 1; i <= 10; i++) {
                randomAccessFile.writeInt(i);
            }
            long size = randomAccessFile.getFilePointer();
            size -= 4;
            randomAccessFile.seek(size);
            while ((i = randomAccessFile.readInt()) != -1 && size > 0) {
                System.out.print(i);
                size -= 4;
                randomAccessFile.seek(size);
            }
        }
    }