Hi Kim

The idea of the topic is that InputStreams and OutputStreams are based on layers. Once you have an InputStream, you can read from it through a filter. For e.g., you can write InputStream in = new BufferedInputStream( new FileInputStream("filename.txt"));. The FileInputStream is the actual source of data, but you read it through a BufferedInputStream that allows a (more efficient) buffered read from the source, still allowing a byte-by-byte access.

You can extend all this and write:
InputStream in = new MyFilter1Stream( new MyFilter2Stream( new MyFilter3Stream( new FileInputStream("myfile.txt")))); where each filter adds something to the reading process. One of them might, for e.g., convert all the input characters to capital letters.

The same idea applies to OutputStreams. You can have your own filter in the chain that converts, for e.g., all the dirty words in "***" strings.

The homework is based by a lab exercise that reads from a file, through and InputStream, and echoes its contents to another one, through an OutputStream and asks to write other a filter for the input or a filter for the output that converts all letters to capital letters.

To create your own FilterInputStream, you must override both read methods (the one that read on byte and the other that reads a buffer) so that they read from the source InputStream (one byte or a buffer), then convert the input to capital letters. Analogically, to create your own FilterOutputStream yo must override all the write methods.

Hope it helps
Mihai



Kim Ching Koh a écrit :
Hi,
Anyone has done this homework can advise? Regards
KC

On Tue, May 25, 2010 at 2:53 PM, kc <[email protected] <mailto:[email protected]>> wrote:

    Hi,

    I am not too sure what is the requirement of the homework for java
    stream I/O, is it just to overide read() in the
    ChangeToUpperCaseInputStream class so it will convert and return to
    uppercase?


    1. The homework is to either modify FilterInputOutputStream NetBeans
    project you've done in Exercise 8 above or create a new project as
    following.  (You might want to create a new project by copying the
    FilterInputOutputStream project.  You can name the homework project in
    any way you want but here I am going to call it MyIOStreamProject.)
    Write ChangeToUpperCaseInputStream class, which extends
    FilterInputStream.
    Write ChangeToUpperCaseOutputStream class, which extends
    FilterOutputStream.

    Use either ChangeToUpperCaseInputStream class or
    ChangeToUpperCaseOutputStream class to convert the characters read to
    upper case.

    Regards
    KC

    --
    To post to this group, send email to
    [email protected]
    <mailto:[email protected]>
    To unsubscribe from this group, send email to
    [email protected]
    <mailto:javaprogrammingwithpassion%[email protected]>
    For more options, visit this group at
    http://groups.google.com/group/javaprogrammingwithpassion?hl=en


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

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

Reply via email to