Dúvidas com Scanner

Oi galera, tô com um probleminha chato, mas lá vai: Em um momento no meu código preciso das informações passados pelo usuário. Segue o código:

System.out.println("- inserir contato...");
System.out.print("Nome: ");
c.setNome(input.nextLine());

System.out.print("Telefone: ");
c.setTelefone(input.nextInt());

System.out.print("e-mail: ");
c.setEmail(input.nextLine());

System.out.print("Data Nasc.: ");
c.setDataNasc(df.parse(input.nextLine()));

Quando eu executo o programa, ele não deixa eu entrar com o nome e pula para o telefone e se eu tento digitar o nome ele lança uma exceção do tipo InputMismatchException.

- inserir contato...
Nome: Telefone:

Como devo fazer para que eu consiga entrar com todos os dados corretamente?

Obrigado pela atenção!!

Em vez de nextLine() tenta usar next().
[]'s

Posta o código relativo á inicialização de um objecto da classe Scanner.

Olá RoDnEy_PeReIrA,
vai aqui outro modo de ler dados do teclado:

import java.io.IOException;
import java.io.DataInputStream;

public class LeTeclado{
	public static void main(String []args){
             String linha = "";
             DataInputStream mdis = new DataInputStream(System.in);
             System.out.print("Digite algo: ");
             try{
                  linha = mdis.readLine();
                  System.out.println("Voce digitou: " +linha);
             }
             catch(IOException ioe){
              		 ioe.printStackTrace();
             }
	}
}

O Scanner com certeza é mais prático, mas vale saber outras formas de ler dados do dispositivo padrão (teclado).

Abraço!

Valeu galera! A solução do TRICOLACO resolveu meu problema. Eu pensei já ter colocado este método, mas pelo visto não.
Mas, aproveitando qual é a diferença entre next() e nextLine(), pq não entendi muito bem??
Valeu gente!!

Olá RoDnEy_PeReIrA,
se desejar ir na fonte mais correta: http://java.sun.com/j2se/1.5.0/docs/api/ procure pela Classe Scanner.

De maneira prática:

import java.util.Scanner;

public class Teste{
	public static void main(String[] args) {
		Scanner s =  new Scanner(System.in);
		String str = "";

		System.out.print("Nome: ");
		str = s.next();
		System.out.println(">str: " +str);
		System.out.print("Nome: ");
		str = s.next();
		System.out.println(">str: " +str);
		System.out.print("Nome: ");
		str = s.next();
		System.out.println(">str: " +str);
	}

}

:arrow: nextLine(): lê a linha inteira sem se preocupar com os espaços.

Saida nextLine():

Nome: uma frase qualquer para teste
>str: uma frase qualquer para teste
Nome: outra frase qualquer para teste
>str: outra frase qualquer para teste
Nome: mais uma frase qualquer para teste
>str: mais uma frase qualquer para teste

:arrow: next(): lê um token(uma) até encontrar um espaço em branco, a próxima chamada do método recebe o próximo token(frase) após o espaço em branco e assim por diante. É por isso que o resultado fica “quebrado”.

Saída do next():

Nome: uma frase qualquer
>str: uma
Nome: >str: frase
Nome: >str: qualquer

Espero ter ajudado.
Abraços!

Valeu serjaumfantin, agora fico bastante claro!! Valeu!!