Question: What is result of attempting to compile and execute the code below:

Question:What is result of attempting to compile and execute the code fragment below? Assume that the code fragment is part of an application that has write permission in the current working direcgtory. Also assume that before execution, the current working directory does not contain a file called datafile.

1. try{
2. RandomAccessFile raf = new RandomAccessFile("datafile","rw");
3. BufferedOutputStream bos = new BufferedOutputStream(raf);
4. DataOutputStream dos = new DataOutputStream(bos);
5. dos.writeDouble(Math.PI);
6. dos.close();
7. bos.close();
8. raf.close();
9. } catch(IOException e){}

A. The code fails to compile.

B. The code compiles , but throws an exception at line 3.

C. The code compiles and executes, but has no effect on the local file system.

D. The code compiles and executes; afterward, the current working directory contains a file called datafile.

Answer:A is correct. Compilation fails at line 3, because there is no constructor for BufferedOutputStream that takes a RandomAccessFile object as a parameter. You can be sure of this even if you are not familiar with buffered output streams, because random-access files are completely incompatible with the stream/reader/writer model.