Não estou conseguindo criar txt em Arquivos e programas

Pessoal, não estou conseguindo criar um txt em uma pasta no arquivos e programas

segue o código

	String programFiles = System.getenv("ProgramFiles");
		String line = null;
		try {
			File f = new File(programFiles+ "\\Programa\\teste.txt"); 
			boolean exists = f.exists();  // fala que não existe mas quando eu pego o path e coloco no existe o path
			boolean createNewFile = f.createNewFile();
		} catch (IOException e2) {
			e2.printStackTrace();
		}

Se pego o mesmo código e coloco para criar o txt no desktop o txt é criado normalmente
como posso resolver isso?

Não faz - isso é problema de permissão, e você vai ver que se o Windows for Vista ou 7 ou 2008, ou então você estiver rodando em uma conta que não tem poderes de administrador no Windows NT, 2000, 2003, você não vai conseguir escrever sem que o programa receba explicitamente, quando for iniciado, as permissões corretas.

e não tem jeito de resolver isso no código ?!

No código Java não. Você pode fazer isso por fora, por exemplo: no caso do Windows Vista ou 7, você pode criar um atalho para seu programa que solicita as permissões adequadas (clique com o botão direito no atalho, escolha aquelas opções de compatibilidade, deve haver uma que é “Rodar como Administrador” ou coisa semelhante.

De modo geral, é péssima prática você ter de criar um arquivo no diretório Program Files (Arquivos de Programas).
Se for necessário criar um arquivo desses, deve ser somente durante a instalação do programa.

Cria essa página no seu projeto.

Utilize mkdir para criar a pasta.
Fica melhor.