Question: What does the following code fragment print out at line 10?

1. try{
2. FileOutputStream fos = new FileOutputStream("xx");
3. for (byte b=10; b<50; b++)
4. fos.write(b);
5. fos.close();
6. RandomAccessFile raf = new RandomAccessFile("xx","r");
7. raf.seek(10);
8. int i = raf.read();
9. raf.close();
10. System.out.println("i=" + i);
8. }
9. catch (IOException e) {}

A. The output is i = 30.

B. The output is i = 20.

C. The output is i = 10.

D. There is no output because the code throws an exception at line 1.

E. There is no output because the code throws an exception at line 6.

Answer:B is correct. All the code is perfectly legal, so no exceptions are thrown. The first byte in the file is 10, the next byte is 11, the next is 12 and so on. The byte at file position 10 is 20, so the output is i = 20.

 

 

 

&nbsp