Author Topic:   true/false
Umesh
ranch hand
posted April 13, 2000 09:30 PM             
Which of the following statements are true?

A. Java uses a system called UTF for I/O to support
international character sets //true
B. The RandomAccessFile is the most suitable class
for supporting international character sets
C. An instance of FileInputStream may not be chained to
an instance of FileOutputStream //true
D. File I/O activities requires use of Exception handling //true

Can any one help me to understand answer C ?

Thanks in advance.

Paul Wheaton
sheriff
posted April 14, 2000 10:39 AM             
There is a pipe construct so you can connect an InputStream to an OutputStream. I can't remember what it is called, but I do know that I used it once.

maha anna
bartender
posted April 14, 2000 10:51 AM             
Umesh,
I waited for someone to respond. Ok. Here is some thought.

A. Java uses a system called UTF for I/O to support international character sets
True. Java uses a conversion method called UTF-8 which is a subset of UTF. Subset in the sense, in true UTF a char can be encoded from 1 byte to ANY no of bytes. This means we can cover ALL CHARS IN ALL LANGUAGES IN THE WORLD. So UTF is true transformation. This means a small char can have lesser no of bytes , at the same time a BIG-LOOK&FEEL ( ) asian char may be encoded with many no. of bytes. Since in Java all chars can have max 16 bits,(Unicode char) , All IO operations which need char transformation of bytes (All readers/writers) uses a pre-defined transformation format. (i.e) a char can be encoded to 1 or 2 or 3 bytes ONLY . max 3 bytes. There are some rules which chars are encoded with how many no of bytes. It is in Java Doc. I also found a error in Bill brogden's book recently here which illustrates this concept.

B. The RandomAccessFile is the most suitable class for supporting international character sets
False. All locale related needs are dealt with Readers/Writers and theri subclasses

C. An instance of FileInputStream may not be chained to an instance of FileOutputStream

True. FileOutputStream class take the args only in the form of (String filename) / (File file) / (FileDescripter fd )/( String filename, boolean append) format. If you take all OutputStream classes, Most of them (except PipedOutputStream ) does not take an InputStream object an arg to their constructor. We can say a PipedOutputSteam is an OutputStream, but can we say all OutputStreams are PipedOutputStream ? We can't generalize like that. So the this answer is true
.

D. File I/O activities requires use of Exception handling
True. Most of read/write IO operation are inherited from the abstract InputStream/OutputStream classes. And all (as far as I checked ) the subclasses which override them throws IOException . So this is true.

regds
maha anna

[This message has been edited by maha anna (edited April 14, 2000).]

|