public static void processFiles(File source, File dest) throws Exception { write( "Mutating " + FileSystemManager.getAbsolutePath(source) + " to " + FileSystemManager.getAbsolutePath(dest)); if (!FileSystemManager.exists(source)) { write(" ERROR : " + FileSystemManager.getAbsolutePath(source) + " does not exist."); return; } FileTool.getInstance().createDir(FileSystemManager.getParentFile(dest)); long length = FileSystemManager.length(source); byte[] buff = new byte[1024]; double proba = 4.0 / length * buff.length; InputStream in = null; OutputStream out = null; boolean eq = true; try { in = FileSystemManager.getFileInputStream(source); out = FileSystemManager.getFileOutputStream(dest); int l; long position = 0; while ((l = in.read(buff)) != -1) { out.write(mutate(buff, l, proba, position++)); } } finally { in.close(); out.close(); } if (eq) { write(" Mutation completed."); } }