Wednesday, February 1, 2012

ByteArrayInputStream

ByteArrayInputStream:


import java.io.FileInputStream;
import java.io.InputStream;
import java.io.IOException;
import java.io.ByteArrayInputStream;
public class ByteArrayInputStreamDemo
{
public static void main(String args[])throws IOException
{
int size;
String s1="";
int c;
InputStream f1=new FileInputStream("file1.txt"); //reads text from existing file
System.out.println("Total size:" + (size=f1.available()));
for(int i=0;i<size;i++)
{
s1=s1+(char)f1.read();
}
System.out.println("S1:" + s1);

byte b[]=s1.getBytes();
ByteArrayInputStream input1=new ByteArrayInputStream(b);
ByteArrayInputStream input2=new ByteArrayInputStream(b,0,5);

//printing the input1 values 2 times(one in lowercase and another in uppercase)

for(int i=0;i<2;i++)
{
for(int j=0;j<b.length;j++)
while((c=input1.read())!=-1)
if(i==0)
System.out.print((char)c);
else
System.out.print(Character.toUpperCase((char)c));
input1.reset();
}

//printing the input2 values

for(int k=0;k<b.length;k++)
while((c=input2.read())!=-1)
System.out.print((char)c);
f1.close();
}
}

output:

Total size:34
S1:Hello Welcome to File Handling Bye
Hello Welcome to File Handling ByeHELLO WELCOME TO FILE HANDLING BYEHello

Transferring the content of ByteArrayOutputStream to FileOutputStream file

//ByteArrayOutputStream to FileOutputStream

import java.io.*;
class ByteArrayOutputStreamDemo
{
public static void main(String args[]) throws IOException
{
ByteArrayOutputStream f = new ByteArrayOutputStream();
String s = "This should end up in the array";
byte buf[] = s.getBytes();
f.write(buf);

System.out.println("Buffer as a string");
System.out.println(f.toString());

System.out.println("Into array");
byte b[] = f.toByteArray();

for (int i=0; i<b.length; i++)
{
System.out.print((char) b[i]);
}

System.out.println("\nTo an OutputStream()");
OutputStream f2 = new FileOutputStream("test.txt");
f.writeTo(f2);
f2.close();
System.out.println("Doing a reset");
f.reset();
for (int i=0; i<3; i++)
f.write('X');
System.out.println(f.toString());
}
}

Reading text from existing file in byteStream

//Usage of FileInputStream Class

import java.io.FileInputStream;
import java.io.InputStream;
import java.io.IOException;
public class FileInputStreamDemo
{
public static void main(String args[])throws IOException
{
int size;
String s1="";
InputStream f1=new FileInputStream("file1.txt"); //reads text as a byte from the existing file in the current path
System.out.println("Total size:" + (size=f1.available()));
for(int i=0;i<size;i++)
{
//if(i==10)
//f1.skip(4); //It skips the 4 characters from 10th position
System.out.print((char)f1.read());
}
f1.close();
}
}

Output:

Total size:34
Hello Welcome to File Handling Bye

Creating a .txt file and writing text to it in byteStream

Usage of FileOutputStream Class:


import java.io.FileOutputStream;
import java.io.OutputStream;
import java.io.IOException;
public class FileOutputStreamDemo
{
public static void main(String args[])throws IOException
{
String source="Hello Welcome to File Handling Bye";
byte buf[]=source.getBytes();

OutputStream f1=new FileOutputStream("f:/file1.txt");
f1.write(buf);
f1.close();
}
}


output:

Creates a file1.txt file in a specified path and writes a String to it.

Displays all files names with path within the specified path

Usage of ListFiles:

import java.io.File;
import java.util.*;
class FileDemo1
{
public static void main(String args[])
{
List<File> l=new ArrayList<File>();
File f=new File("F:/DO IT/Home Practice/Files");
f.mkdirs(); //If directory does not exist, will make a directory and path specified
if(f.isDirectory())
{
//String s[]=f1.list(only);     //list will return the file list as an array of String
File files[]=f.listFiles(); //listFiles will return the file list as an array of File object instead of Strings
for(File fil:files)
l.add(fil);
}
Iterator<File> i=l.iterator();
while(i.hasNext())
{
System.out.println(i.next());
}
}
}

output:

F:\DO IT\Home Practice\Files>java FileDemo1
F:\DO IT\Home Practice\Files\ByteArrayInputStreamDemo.class
F:\DO IT\Home Practice\Files\ByteArrayInputStreamDemo.java
F:\DO IT\Home Practice\Files\ByteArrayOutputStreamDemo.class
F:\DO IT\Home Practice\Files\ByteArrayOutputStreamDemo.java


Displays the All files names with specified extention within a specified path

Using FilternameFilter


 OnlyExt.java (Common)

import java.io.*;
public class OnlyExt implements FilenameFilter
{
String ext;
OnlyExt(String ext)
{
this.ext=ext;
}
public boolean accept(File dir, String name)
{
return name.endsWith(ext); //return name.startsWith(ext);
}
}

DirListOnly .java


import java.io.*;
import java.util.*;
class DirListOnly
{
public static void main(String args[])
{
String dirname="F:/DO IT/Home Practice/Files";
String extention;
System.out.println("Enter the Extention of a files:");
Scanner sc=new Scanner(System.in);
extention=sc.next();
File f1=new File(dirname);
FilenameFilter only=new OnlyExt(extention);
String s[]=f1.list(only);
if(s.length!=0)
{
for(String s1:s)
System.out.println(s1);
}
else
{
System.out.println("No Files Found");
}
}
}

output:
javac OnlyExt.java
javac DirListOnly.java
java DirListOnly


Enter the Extention of a files:
class
ByteArrayInputStreamDemo.class
ByteArrayOutputStreamDemo.class
DirListOnly.class
FileDemo1.class
FileInputStreamDemo.class
FileOutputStreamDemo.class
OnlyExt.class



Displays all directories and file names in the specified path


//Usage of File class and isDirectory and list method

import java.io.*;
class DirList
{
public static void main(String args[])
{
String dirname="F:/DO IT/Home Practice";
File f1=new File(dirname);
if(f1.isDirectory())
{
System.out.println("Directory of" + dirname);
String s[]=f1.list();
for(int i=0;i<s.length;i++)
{
File f=new File(dirname + "/" + s[i]);
if(f.isDirectory())
{
System.out.println(s[i]  + "is a directory");
}
else
{
System.out.println(s[i] + "is a file");
}
}
}
else
{
System.out.println(dirname + "is not a directory");
}
}
}

output:
Directory ofF:/DO IT/Home Practice
Collectionsis a directory
Dateis a directory
FileIOis a directory
Filesis a directory
Packageis a directory
String Handlingis a directory
StringRev.classis a file
StringRev.javais a file