Hi Mihai,
Not sure what do you mean by read a buffer, do you mean
*read*<https://mail.google.com/mail/html/java/io/FilterInputStream.html#read(byte[])>(byte[]
b)?
How about
*read*<https://mail.google.com/mail/html/java/io/FilterInputStream.html#read(byte[],
int, int)>(byte[] b, int off, int len)? Need to override too?
read(byte[] b) seems to be calling read(byte[] b, int off, int len), so we
maybe able to to override read(byte[] b) but I am not sure how to override
read(byte[] int off, int len)
In Exercise 8, read(byte[] int off int len) seem to calling itself? How
does this work?
public int read(byte[] b, int off, int len) throws IOException {
len = in.read(b, off, len);
if (len != -1) {
cksum.update(b, off, len);
}
return len;
}
Thanks.
KC
On Wed, May 26, 2010 at 2:15 PM, Mihai DINCA <[email protected]> wrote:
> 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]> 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]
>> To unsubscribe from this group, send email to
>> [email protected]<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