Re: Easy way to read the contants of a folder/directory and output
contents to file?
On 12/12/2011 9:42 AM, Thee Chicago Wolf [MVP] wrote:
Iterating through the array wasn't too hard with listFiles (thanks for
that BTW) but I wound up using the following to accomplish what I
needed to get output to the file to work. It was just a simple matter
of the for loop
FileWriter folderOutput = new FileWriter("filelist.txt");
PrintWriter outFile = new PrintWriter(folderOutput);
for(int i = 0; i< list.length; i++)
{
outFile.write(String.valueOf(list[i]+"\n"));
}
folderOutput.close();
This looks like it might work, but it also might not. I'd
suggest using outFile.close() instead of folderOutput.close() to
avoid the possibility that the PrintWriter might be holding on
to a few characters that have not yet been flushed. It might be
best to get rid of the `folderOutput' name altogether, just to
make this particular mistake harder to make.
There are also a few simplifications available. First, there's
an easier way to iterate through an array (rather oddly named `list').
Second, there's no need to use String.valueOf() on a String argument.
Finally, you could use PrintWriter's own methods to deal with line
termination instead of worrying about it yourself.
Putting it all together yields
PrintWriter outFile = new PrintWriter(
new FileWriter("filelist.txt"));
for (File f : list) {
outFile.println(f);
}
outFile.close();
"Production grade" code would probably use outFile.checkError()
to detect any I/O errors that the PrintWriter may have encountered.
--
Eric Sosman
esosman@ieee-dot-org.invalid