public class SourceReader { public static String getSourceForClass(Class<?> c) throws IOException { StringBuffer src = new StringBuffer(); /* * Use package name + class name so the class loader won't have to guess * the package name. */ String resourceName = "/" + c.getName().replace('.', '/') + ".java"; InputStream is = c.getResourceAsStream(resourceName); if (is == null) { throw new FileNotFoundException(resourceName); }
BufferedReader bis = new BufferedReader(new InputStreamReader(is)); for (String line = bis.readLine(); null != line; line = bis.readLine()) { src.append(line); src.append("\n"); } return src.toString();