Boas,
Eu queria criar um programa que lê-se dois inteiros de um ficheiro .txt porem estou com algumas dificuldades e muitas duvidas à mistura vou vos mostrar o que já fiz:
Penso que haja qualquer confusão no nextInt eu suponho que não se possa fazer essa utilização contudo não estou a ver outra forma que vá buscar os inteiros. Exemplo, suponhamos que no ficheiro .txt estaria : 34 6 , na variável lerprimeiroint eu pretendia que fica-se o 34 e na variável lersegundoint eu pretendia que ficasse assim o 6 .
Nesse caso, você também terá que acrescentar o espaço como um dos caracteres do seu Scanner.
Ou então, fazer um split no espaço na linha lida.
ribclauport
Boas,
Eu queria criar um programa que lê-se dois inteiros de um ficheiro .txt porem estou com algumas dificuldades e muitas duvidas à mistura vou vos mostrar o que já fiz:
Realmente eu não entendi para que ler somente a primeira linha de um ficheiro?
Acredito que seria algo como abaixo, o codigo abaixo cria um txt, depoisi grava duas linhas com dois numeros, depois o arquivo é passado para a classe, a mesma
le a primeira linha, e escreve os dois numeros na saida padrão, é so salvar e rodar o progama:
A minha duvida é a seguinte, quando nos usamos a string [] numeros estamos a converter os dois inteiros do ficheiro txt para strings correto? O comando split vai apanhar cada numero, ou seja cada string que esteja separada por um espaço e guarda-a assim num array, penso que até aqui estou a dizer tudo correto.
Quando utilizamos o Integer.valueOf(numeros[0]) estamos a passar o que ficou na posição 0 do array, ou seja passa neste caso o 36, para a variavel lerprimeiroint já como um inteiro, e o mesmo acontece para o lersegundoint, passando o que esta na posiçao 1 do array numeros.
A minha duvida é mesmo saber se a minha interpretação está correta.
ribclauport
O método valueOF(), retorna um objeto wrapper recém-criado do tipo que chamou o método, na realidade ali o java está fazendo um auto unboxing…, mas isso não vem ao caso, poderia ser usado também o método ParseXxx(), o qual retorna um tipo primitivo nomeado…
Mas de qualquer forma a idéia é realmente essa, “pegar” a string do array gerado pelo método split() e manipular da forma que desejares…
Bem, so para constar abaixo uma outra alternativa, desta vez usando o método ParseXxx(), e também usando o construtor sobrecarregado
que recebe uma string para criar um Integer.
lerprimeiroint = Integer.parseInt(numeros[0]);
lersegundoint = Integer.parseInt(numeros[1]);
lerprimeiroint = new Integer(numeros[0]); //unboxing automático
lersegundoint = new Integer(numeros[1]);//unboxing automático
lerprimeiroint = new Integer(numeros[0]).intValue(); //unboxing explícito
lersegundoint = new Integer(numeros[1]).intValue();//unboxing explicíto