From: "Erik Hanson"
To:
Subject: ConvertComments changes
Date: Mon, 23 Nov 1998 14:00:11 -0500
George:
I found your ConvertComments program right after I tried to javadoc the Acme
classes. I wanted to convert all the files so I modified your program to
recursively process directories. So now if I call "java ConvertComments
Acme", all the .java files in the "Acme" directory will be converted.
I changed main() and added a class called addToFileList(). I thought I'd
send you my changes in case you are interested. The code isn't very good for
two reasons: first, I only spent a few minutes on it, and second, I haven't
done much with java.io before.
Also, I only tested it with passing in a directory name, not a file name. I
only needed the program to work once.
Thanks for writing this program, and thanks for putting the source out
there!
Erik
- - - - -
/** Read and write Java source code files.
* With no arguments, reads from System.in, writes to System.out.
* If given file names overwrites files in place.
* Pass a -d to start debugging output to System.err.
* Usage: java Acme.ConvertComments [ -d | File.java ...]
*/
public static void main(String [] args) throws IOException
{
ConvertComments c = new ConvertComments();
Vector files = new Vector();
if(args.length == 0 || args.length == 1 && args[0].equals("-d"))
{
c.debug = (args.length == 1);
c.convert(System.in, System.out);
}
else
{
c.debug = addToFileList( args, null, files );
}
int size = files.size();
ByteArrayOutputStream out = new ByteArrayOutputStream();
System.out.println( "Files remaining:" );
for ( int j = 0; j < size; j++ )
{
out.reset();
System.out.print( size - j + " " );
FileInputStream in = new
leInputStream( (File)files.elementAt( j ) );
c.convert(in, out);
in.close();
new
FileOutputStream( (File)files.elementAt( j ) ).write(out.toByteArray());
}
}
/**
* Add the array of file names to the vector of file names. Recurses
directories.
* @return true if a debug flag was found.
*/
public static boolean addToFileList( String inArgs[], File inDirectory,
Vector outFileList )
{
File file;
boolean debug = false;
for ( int i = 0; i < inArgs.length; i++ )
{
if( inArgs[i].equals( "-d" ) )
System.out.println("Debugging enabled.");
debug = true;
continue;
}
if ( inDirectory != null )
{
String path = inDirectory.getAbsolutePath();
if ( ! path.endsWith( File.separator ) )
{
file = new File( path + File.separatorChar + inArgs[i] );
}
else
{
file = new File( path + inArgs[i] );
}
}
else
{
file = new File( inArgs[i] );
}
if ( file.isDirectory() )
{
addToFileList( file.list(), file, outFileList );
}
else
{
if ( file.getName().endsWith( ".java" ) )
{
outFileList.addElement( file );
}
}
}
return debug;
}
               (
geocities.com/siliconvalley/vista/Vista)                   (
geocities.com/siliconvalley/vista)                   (
geocities.com/siliconvalley)