Gravando dados em arquivo de texto em formato de tabela

Até agora eu tenho isso:

File dir = new File("C:\\Users\\User\\Desktop\\dir\\dir1\\dir2);
dir.mkdirs();
File file = new File(dir, "filename.txt");
FileWriter archivo = new FileWriter(file);
archivo.write(String.format("%20s %20s", "column 1", "column 2 \r\n"));
archivo.write(String.format("%20s %20s", "data 1", "data 2"));
archivo.flush();
archivo.close();

Contudo. a saída do arquivo fica assim:

O que eu não gosto nada.

Como posso criar um formato de tabela melhor para a saída de um arquivo de texto?

Gostaria de receber qualquer ajuda.

Desde já, obrigado!

EDIT: Fixed!

Além disso, em vez de parecer

    column 1             column 2
      data 1               data 2

Como posso fazer com que fique assim:

column 1             column 2
data 1               data 2

Preferiria assim.

questionAnswers(4)

yourAnswerToTheQuestion