This piece of code is to get random samples from two String lists, pos and neg. Based on a specified sampleSize, it writes an equal number of strings into 4 files. This codes seems slow, perhaps due to the file creating operation, since each file is created for a single string. Is there a better way to do this?
// pos and neg are ArrayList<String>
Collections.shuffle(pos);
Collections.shuffle(neg);
int i = 0;
int j =0;
while(i < sampleSize ){
if(i<sampleSize/2) {
BufferedWriter bw1 = new BufferedWriter(new FileWriter(("test/neg/" + i + ".txt")));
bw1.write(neg.get(i));
bw1.close();
BufferedWriter bw2 = new BufferedWriter(new FileWriter(("test/pos/" + i + ".txt")));
bw2.write(pos.get(i));
bw2.close();
}else{
BufferedWriter bw1 = new BufferedWriter(new FileWriter(("train/neg/" + j + ".txt")));
bw1.write(neg.get(j));
bw1.close();
BufferedWriter bw2 = new BufferedWriter(new FileWriter(("train/pos/" + j + ".txt")));
bw2.write(pos.get(j++));
bw2.close();
}
i++;
System.out.println(i);
}