How does one read multiple input files in Java? I need to read multiple inputs (several text documents) and create a Term Document Matrix.
I can read one file like this:
File file = new File("a.txt");
int ch;
StringBuffer strContent = new StringBuffer("");
FileInputStream stream = null;
try
{
stream = new FileInputStream(file);
while( (ch = stream.read()) != -1)
strContent.append((char)ch);
stream.close();
}
Is there any library to read multiple input files? Or I just need to loop and read all files? All files are txt.
解决方案
Is there any library to read multiple input files?
AFAIK, no.
Here is your code adapted to read multiple files into the strContent buffer.
String names = new String[]{"a.txt", "b.txt", "c.txt"};
StringBuffer strContent = new StringBuffer("");
for (String name : names) {
File file = new File(name);
int ch;
FileInputStream stream = null;
try {
stream = new FileInputStream(file);
while( (ch = stream.read()) != -1) {
strContent.append((char) ch);
}
} finally {
stream.close();
}
}
Note that I've moved the close call into a finally block so that you don't leak file descriptors if there is a problem reading the stream. The main changes are to simply put your code into a loop, and tweak the order of a couple of the statements.