Leitura via Teclado

Pessoal, fiz uma classe para ler dois numeros do teclado e calcular o quadrado do primeiro valor pelo segundo e o cubo do segundo valor pelo primeiro. Meu codigo é o seguinte:

	try{	
		byte primeiroNumero[] = new byte[128];
		byte segundoNumero[] = new byte[128];
		int calc1, calc2, NumeroUm, NumeroDois;
		
		System.out.println("Entre com o primeiro numero: ");
		System.in.read(primeiroNumero);
		
		System.out.println("Digite o segundo numero: ");
		System.in.read(segundoNumero);	
		
		//pego o valor do teclado como um string. 
		String c1 = new String(primeiroNumero,0);
		//Converto a String para inteiro.
		NumeroUm = Integer.parseInt(c1);
		
		String c2 = new String(segundoNumero,0);
		NumeroDois = Integer.parseInt(c2);
		
		//Faço os calculos
		calc1 = ((NumeroUm*NumeroUm) * NumeroDois);
		calc2 = ((NumeroDois*NumeroDois*NumeroDois) * NumeroUm);
		
		System.out.println("Quadrado do Primeiro pelo Segundo :" + calc1);
		System.out.println("O cubo do segundo pelo primeiro: " + calc2);
		
	}catch(IOException ioe){
		System.out.println(ioe.toString());
		ioe.printStackTrace();
	}

Só que dá o seguinte erro quando coloco o segundo valor e dou enter.

java.lang.NumberFormatException: For input string: "15
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:435)
at java.lang.Integer.parseInt(Integer.java:476)
at src.LeituraNumeros.main(LeituraNumeros.java:26)
Exception in thread “main”

Qual é o problema?
Tem alguma forma melhor de pegar esses valores diretamente do teclado como Int ou realmente eu tenho que converte?

Obrigado.

O construtor que vc usou para converter o array de bytes em String esta deprecado, olha o que diz o javadoc:

Deprecated. This method does not properly convert bytes into characters. As of JDK 1.1, the preferred way to do this is via the String constructors that take a charset name or that use the platform's default charset.

Talves usar

  String (byte[] bytes)
 Constructs a new String by decoding the specified array of bytes using the platform's default charset.

eu faria assim:

	private String leDoTeclado() {

		try {

			InputStreamReader stdin = new InputStreamReader(System.in);

			BufferedReader terminal = new BufferedReader(stdin);

			return terminal.readLine();

		} catch (IOException e) {

			return null;

		}

	}

Obrigado, vou testar o código. É que eu estou apredendo java e não conhecia essa classe.

Tente isso (Java 5):

Scanner input = new Scanner(System.in);
int numero = input.nextInt();
double numDouble = input.nextDouble();
String entrada = input.next();
...

Valeu pessoal.

Testei e deu certo.

Obrigado.

Aprender Java é massa!!!