package com.coderising.jvm.loader;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class ClassFileLoader {
private List<String> clzPaths = new ArrayList<String>();
static final int BUFF_SIZE=1024;
public byte[] readBinaryCode(String className) {
byte[] barray = new byte[BUFF_SIZE];
try {
String pathname = clzPaths.get(0) + "\\" + className.replace('.', '\\')+".class";
File file = new File(pathname);
InputStream in = new FileInputStream(file);
int byteread = 0;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
while ((byteread = in.read(barray)) != -1) {
baos.write(barray, 0, byteread);
}
return baos.toByteArray();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
}
public void addClassPath(String path) {
clzPaths.add(path);
}
public String getClassPath() {
int clzsize = clzPaths.size();
String str = "";
if (clzsize > 0) {
for (int i = 0; i < clzsize; i++) {
str += clzPaths.get(i);
if (i < clzsize - 1) {
str += ";";
}
}
}
return str;
}
}