Saturday, 8 June 2013

Listing nested classes and implemented interfaces names

Code
import java.util.Arrays;

class NestedInfoDemo {

public static void main(final String[] args) {
printMemberClasses(Class1.class);

}

public static void printMemberClasses(final Class dataType) {
final Class[] nestedClasses = dataType.getClasses();
final Class[] declaredNestedClasses = dataType.getDeclaredClasses();
final Class[] nestedInterfaces = dataType.getInterfaces();
final Class declaringClass = dataType.getDeclaringClass();

System.out.println("Member Class info for: " + dataType.getName());
System.out.println("Nested Classes: " + Arrays.asList(nestedClasses));
System.out.println("Declared Nested Classes: " + Arrays.asList(declaredNestedClasses));
System.out.println("Interfaces: " + Arrays.asList(nestedInterfaces));
System.out.println("Declaring Class: " + declaringClass);
System.out.println();
}

interface Int1 {

}

interface Int2 {

}

interface Int3 {

}

class Class1 implements Int1, Int2, Int3 {
public class Class4 {

}
}

class Class2 {
}

class Class3 {
}
}


Sample Output
Member Class info for: org.reflection.NestedInfoDemo$Class1
Nested Classes: [class org.reflection.NestedInfoDemo$Class1$Class4]
Declared Nested Classes: [class org.reflection.NestedInfoDemo$Class1$Class4]
Interfaces: [interface org.reflection.NestedInfoDemo$Int1, interface org.reflection.NestedInfoDemo$Int2, interface org.reflection.NestedInfoDemo$Int3]
Declaring Class: class org.reflection.NestedInfoDemo

Java Code to search a file

Code
import java.io.File;
import java.util.Vector;

class JavaSearchFile {
static Vector<File> v;

public static void main(String args[]) throws Exception {

File f = new File(args[0]);
v = new Vector<File>();
System.out.println("\nStarting search....\n-------------------------\n");
search(f, args[1]);
print();

}

public static void search(File file, String name) {
System.out.println("Searching in " + file.getAbsolutePath());
if (file.isDirectory()) {
if (file.getName().contains(name)) {
v.addElement(file);
}
File[] files = file.listFiles();
for (int i = 0; i < files.length; i++) {
try {
if (files[i].isDirectory()) {
search(files[i], name);
} else {
if (files[i].getName().toLowerCase().contains(name.toLowerCase())) {
v.addElement(files[i]);
}
}
} catch (Exception e) {
}
}
}
}

public static void print() {
File[] f = new File[v.size()];
v.copyInto(f);
System.out.println("\nResults");
System.out.println("------------------------------------------");
for (File k : f) {
System.out.println("Found at " + k.getAbsolutePath());
}
}

}


Sample Output
Starting search....
-------------------------

Searching in c:\Java

Results
------------------------------------------
Found at c:\Java\Notes.txt

Different ways to read and display file content

Code
--------
import java.io.FileInputStream;

class FileRead {
public static void main(String args[]) throws Exception {
// Way-1
FileInputStream fin = new FileInputStream("FileRead.java");
byte[] b = new byte[fin.available()];
fin.read(b);
for (int i = 0; i < b.length; i++) {
System.out.print((char) b[i]);
}
// Way-2
int k = 0;
FileInputStream fin1 = new FileInputStream("FileRead.java");
System.out.println("\n\nWay-2\n");
while ((k = fin1.read()) != -1) {
System.out.print((char) k);
}
// Way-3
FileInputStream fin2 = new FileInputStream("FileRead.java");
byte b1[] = new byte[fin2.available()];
fin2.read(b1, 0, b1.length);
System.out.println("\n\nWay-3\n");
for (int i = 0; i < b1.length; i++) {
System.out.print((char) b1[i]);
}
fin.close();
fin1.close();
fin2.close();
}
}

Code to get file extensions

Code
----------
import java.io.File;

class GetFileExt {

public static void main(String args[]) {

File f = new File("C:/java");
File[] files = f.listFiles();
for (int i = 0; i < files.length; i++) {
String name = files[i].getName();
if (!files[i].isDirectory()) {
if (name.contains(".")) {
System.out.println("Extension for " + name + " is " + name.substring(name.lastIndexOf('.'), name.length()));
}
}
}
}
}

Sample Output
------------------
Extension for Notes.txt is .txt
Extension for One.html is .html

Different ways to write data into file

Code
---------
import java.io.FileOutputStream;

class FileWrite {
public static void main(String args[]) throws Exception {
String st = "I am going to be written in the file.";

// Way-1
FileOutputStream fout = new FileOutputStream("output.txt");
byte[] b = st.getBytes();
fout.write(b);
fout.close();

// Way-2
FileOutputStream fout1 = new FileOutputStream("output1.txt");
// Convert string to char array
char[] c = st.toCharArray();
for (int i = 0; i < c.length; i++) {
fout1.write(c[i]);
}
fout1.close();

// Way-3
FileOutputStream fout2 = new FileOutputStream("output2.txt");
byte[] b1 = st.getBytes();
fout2.write(b1, 0, b1.length);
fout2.close();
}
}

Code to verify the given path is file or directory

Code
---------------
import java.io.File;

class CheckFile {

public static void main(String args[]) {
File file = new File("C:/java");

// Way-1
if (file.isDirectory())
System.out.println(file.getName() + " is a directory");
else
System.out.println(file.getName() + " is a file");

// Way-2
if (file.isFile())
System.out.println(file.getName() + " is a file");
else
System.out.println(file.getName() + " is a directory");
}

}

Sample Output
------------------
java is a directory
java is a directory

Java Samples