2014-12-07 93 views
-1

我很难理解这个java程序是如何工作的。我知道我们有文件的I/O库。这里是代码:有人可以通过这个Java代码走过我吗?

import java.io.*; 

public class SimpleRandomAccessFile { 
     public static void main(String[] args) throws IOException { 
      RandomAccessFile inout = new RandomAccessFile("inout.dat", "rw"); 
      inout.setLength(0); 

      for (int i = 0; i < 200; i++) 
        inout.writeInt(i); 
      System.out.println("Current file length is " + inout.length()); 
      inout.seek(0); 
      System.out.println("The first number is " + inout.readInt()); 

      inout.seek(2*4); 
      System.out.println("The third number is " + inout.readInt()); 

      inout.seek(8*4); 
      System.out.println("The ninth number is " + inout.readInt()); 

      inout.writeInt(200); 

      inout.seek(inout.length()); 
      inout.writeInt(1000); 
      System.out.println("The new length is " + inout.length()); 

      inout.seek(9 * 4); 
      System.out.println("The tenth number is " + inout.readInt()); 
      inout.close(); 
     } 
} 

任何帮助或反馈将是伟大的!

+0

SO不适合这样的问题 – 2014-12-07 18:55:30

+1

这个问题ID适合SO网络的代码审查。 – Magnilex 2014-12-07 18:57:05

+0

此问题对目前形式的其他人无效。请选择您想要回答的具体问题,并提供一个显示您的问题的示例。 – Keppil 2014-12-07 18:58:36

回答

0

int是4个字节。所以第一个int可以在你的文件的位置0读取。然后2 * 4将是你下一个int的第一个字节,等等等等。你可以通过循环n * 4,其中n是要读取的整数。你需要确定你正在读整数,否则你会遇到未定义的行为。

相关问题