Create a LowerCaseInputStream class as follows
public class LowerCaseInputStream extends FilterInputStream
{
public LowerCaseInputStream(InputStream in) {
super(in);
}
@Override
public int read() throws IOException
{
int c = super.read();
if(c==-1)
return c;
else
return Character.toLowerCase(c);
}
@Override
public int read(byte b[], int offset, int len) throws IOException
{
int result = super.read(b, offset, len);
for (int i = offset; i < offset+result; i++)
{
b[i] = (byte)Character.toLowerCase((char)b[i]);
}
return result;
}
}
Use LowerCaseInputStream as follows
public static void main(String[] args) throws FileNotFoundException {
FileInputStream fis = new FileInputStream("D:\\Yogesh.txt");
BufferedInputStream bufin = new BufferedInputStream(fis);
InputStream in = new LowerCaseInputStream(bufin);
int c;
try
{
while((c=in.read())!=-1)
{
System.out.print((char)c);
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
Find it really interesting? You can read more about Decorator pattern in Head First Design Pattern book.
Check this URL
ReplyDeletehttps://gist.github.com/priyajava/4d73fd465f0d62860328
This comment has been removed by a blog administrator.
ReplyDelete