import java.io.*;

public class RandomFileAccessHandling {

        /**
         * @param args
         */
        public static void main(String[] args) throws Exception{
                // TODO Auto-generated method stub

        //try {
            RandomAccessFile raf = new RandomAccessFile("E:\\temp\\abc\
\test.txt", "rw");
            raf.writeInt(10);
            raf.writeInt(43);
            raf.writeInt(88);
            raf.writeInt(455);

            // change the 3rd integer from 88 to 99
            raf.seek((3 - 1) * 4);
            raf.writeInt(99);
            raf.seek(0); // go to the first integer
            int i = raf.readInt();
            while (i != -1) {
                System.out.println(i);
                i = raf.readInt();
            }
            raf.close();
        //} catch (IOException e) {
        //}
        }
}

Question 1:
If I comment out the IOException, the output is the following:
10
43
99
455
Exception in thread "main" java.io.EOFException
        at java.io.RandomAccessFile.readInt(RandomAccessFile.java:739)
        at
com.ibm.test.JavaIO.RandomFileAccessHandling.main(RandomFileAccessHandling.java:
27)

In the main method, I already have the throws Exception.  Why would I
require to have a catch IOException there still?

Question 2:
If I want to do a random access that's is not using primitive or its
wrapper class, say Student object, how can I use the read or write
method using the class?  How can I determine determine the number of
bytes so that I would need where to do the seek? Thx.

Lawrence

-- 
To post to this group, send email to javaprogrammingwithpassion@googlegroups.com
To unsubscribe from this group, send email to 
javaprogrammingwithpassion+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/javaprogrammingwithpassion?hl=en

Reply via email to