Definitely, definitely take the if
statement out of the loop. People always talk about "the optimizer" but optimizers are different, and whatever you can do to help it is probably a good idea.
//Write contents to the file
BufferedWriter writer = new BufferedWriter(new FileWriter(file));
for(int i = 0; i < lines.size() - 1; i++) {
writer.write(lines.get(i));
writer.newLine();
}
// Write the last one without extra newline
if( lines.size() )
writer.write(lines.get(lines.size()-1));