Onde estou errando na estrutura de controle?

public class ArrayTest {

public static void main (String args []){

	int a[] = new int[12];
    int counter;

       for (counter = 0; counter < a.length; counter++ )

         System.out.printf("local a 1 %8d\n", a[ counter ] );
}

}
Ele não era para imprimir o a[ counter ] 1, 2, 3, 4 …? Mas ele imprime tudo 0 até chegar ao final do loop. onde errei? Desde ja agradeço a ajuda de todos.
local a 1 0
local a 1 0
local a 1 0
local a 1 0
local a 1 0
local a 1 0
local a 1 0
local a 1 0
local a 1 0
local a 1 0
local a 1 0
local a 1 0

Process completed

Você declarou um array de int com 12 posições contudo vc
não populou seu array ou seja ele tem 12 posiçoes a quais
estão com valor padrão para int ou seja 0.
Mudei sua impressão somente para que entenda
o que eu estou falando. Apesar de não gostar de
fazer dessa forma ok

System.out.printf(“local a 1 %8d\n”, a[ counter ]=counter );