Wednesday, February 1, 2012

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

Monday, January 16, 2012

ArrayDeque - used like a Stack

import java.util.*;
class ArrayDequeDemo
{
public static void main(String args[])
{
//create ArrayDeque
ArrayDeque<String> adq=new ArrayDeque<String>();

//using ArrayDeque like stack.
adq.push("A");
adq.push("B");
adq.push("D");
adq.push("E");
adq.push("C");
adq.push("F");
System.out.println(adq);

//Popping the elements from ArrayDeque
System.out.println("Popping the stack");
while(adq.peek()!=null)  //  returns null if this deque is empty.
{
System.out.println(adq.pop() +"- popped ");
}
System.out.println(adq);
}

}

Output:
[F, C, E, D, B, A]
Popping the stack
F- popped
C- popped
E- popped
D- popped
B- popped
A- popped
[]

Note:

  • ArrayDeque implements Deque

TreeSet


import java.util.*;
class TreeSetDemo
{
public static void main(String args[])
{
//create TreeSet
TreeSet<String> hs=new TreeSet<String>();
hs.add("B");
hs.add("A");
hs.add("D");
hs.add("E");
hs.add("C");
hs.add("F");
System.out.println(hs);

//Iterator to display elements
                System.out.println("Displaying contents of hs using for each: ");
Iterator itr=hs.iterator();
while(itr.hasNext())
{
Object element=itr.next();
System.out.print(element + "-");
}
System.out.println();

//For each, alternative to iterator
System.out.println("Displaying contents of hs using for each: ");
for(String s:hs)
System.out.print(s + " ");
System.out.println();

//--------------------------------------------------------
//adding a to z in TreeSet
System.out.println();
LinkedHashSet<Character> h=new LinkedHashSet<Character>();
for(int i=97;i<122;i++)
h.add((char)i);
h.add('b');
System.out.println(h);

//Iterator to display elements
                System.out.println("Displaying contents of hs using for each: ");
Iterator itr1=h.iterator();
while(itr1.hasNext())
{
Object element=itr1.next();
System.out.print(element + "-");
}
System.out.println();

//For each, alternative to iterator
System.out.println("Displaying contents of h using for each: ");
for(Character s1:h)
System.out.print(s1 + " ");
System.out.println();

}
}


Output:


[A, B, C, D, E, F]
Displaying contents of hs using Iterator:
A-B-C-D-E-F-
Displaying contents of hs using for each:
A B C D E F

[a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y]
Displaying contents of h using Iterator:
a-b-c-d-e-f-g-h-i-j-k-l-m-n-o-p-q-r-s-t-u-v-w-x-y-
Displaying contents of h using for each:
a b c d e f g h i j k l m n o p q r s t u v w x y



Note:
  • LinkedHashSet guarantee the elements in sorted, ascending order.
  • In LinkedHashSet ListIterator cannot be used.
  • LinkedHashSet implements NavigableSet interface.