Ler dados de arquivo txt java e realizar operações em Java
11 respostas
D
devmarcos071
Olá, preciso que meu programa em Java leia um arquivo .txt com 12 linhas, some os valores e armazene o resultado na variável “salario”, para que a partir disso eu consiga executar o resto do código. Alguém pode me ajudar? (Não sei como fazer isso)
Scannerler=newScanner(System.in);System.out.printf("Informe o nome de arquivo texto:\n");Stringnome=ler.nextLine();System.out.printf("\nConteúdo do arquivo texto:\n");try{FileReaderarq=newFileReader(nome);BufferedReaderlerArq=newBufferedReader(arq);Stringlinha=lerArq.readLine();// lê a primeira linha// a variável "linha" recebe o valor "null" quando o processo// de repetição atingir o final do arquivo textowhile(linha!=null){System.out.printf("\n%d",linha);linha=lerArq.readLine();// lê da segunda até a última linha}
O que vc não consegue fazer? a soma? o código todo? e esse códigão que vc postou aqui? explica essa jogada
I
Iohannes
Exemplo:
importjava.util.List;importjava.util.Scanner;importjava.util.ArrayList;importjava.io.FileReader;importjava.io.BufferedReader;importjava.io.IOException;importjava.io.FileNotFoundException;publicclassTeste{//private static final String pathArquivo = "C:/Users/JFSJUNIOR/Desktop/teste/numerais.txt";publicstaticvoidmain(String[]args){intsoma=0;intproduto=1;StringnomeArquivo;Scannerleitor=newScanner(System.in);List<String>numeros=newArrayList<>();System.out.print("Caminho do arquivo: ");nomeArquivo=leitor.nextLine();try{FileReaderleitorArquivo=newFileReader(nomeArquivo);BufferedReaderbuffer=newBufferedReader(leitorArquivo);Stringlinha=buffer.readLine();while(linha!=null){numeros.add(linha);linha=buffer.readLine();}leitorArquivo.close();}catch(IOExceptionioex){System.out.println("ERRO: "+ioex.getMessage());}for(Stringnumero:numeros){soma+=Integer.valueOf(numero).intValue();produto*=Integer.valueOf(numero).intValue();}System.out.println("Soma: "+soma+" Produto: "+produto);}}
Rodando…
D
devmarcos071
Foi a soma que eu não tava conseguindo
D
devmarcos071
Obrigado. Você tem algum contato para me explicar melhor? Passei o dia todo tentando fazer e quero entender um pouco mais sobre. Irei marcar aqui como questão solucionada
O seu código nem vai compilar, muito menos executar.
O método nextLine() retorna um objeto do tipo String e sua variável nome foi declarada como sendo do tipo Double.
D
devmarcos071
No código eu já tinha alterado, mas esqueci de alterar aqui
D
devmarcos071
O que aconteceu nessa linha? no for sempre uso " ; " e nessa linha tem " : "
D
devmarcos071
Pelo que entendi ele tem que converter o objeto em um objeto inteiro para depois em um int, correto?
E o soma “+=” é o meso que “soma = soma + Integer.valueOf(numero).intValue();” ?
staroski
Essa é a sintaxe do enhanced for.
Você escrever:
for(Stringnumero:numeros){
Equivale a escrever isso aqui:
for(inti=0; i < numeros.size(); i++) {Stringnumero=numeros.get(i);