I am working on a program that has about 400 input files and about 40 output files.
It's simple: It reads each input file and it generates a new file with but much bigger(based on a algorithm).
I'm using read() method from BufferedReader:
String encoding ="ISO-8859-1";
FileInputStream fis = new FileInputStream(nextFile);
BufferedReader reader = new BufferedReader(new InputStreamReader(fis, encoding));
char[] buffer = new char[8192] ;
To read the input files I'm using this:
private String getNextBlock() throws IOException{
boolean isNewFile = false;
int n = reader.read(buffer, 0, buffer.length);
if(n == -1) {
return null;
} else {
return new String(buffer,0,n);
}
}
With each block I'm doing some checkings (like looking some string inside the block) and then I'm writing it into a file:
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream("fileName"), encoding));
writer.write(textToWrite);
The problem is that it takes about 12 minutes.
I'm trying to find something else much faster.
Anyone have some idea about something better?
Thanks.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…