Arquivo como manipular valores de um txt;

4 respostas
AbnoanMuniz

Olá a todos,

Eu tenho o seguinte método para escrever em um txt :

private void escreverN(User User){
		java.io.File dir = new java.io.File("E:\\TutorialArquivos");
		java.io.File arq = new java.io.File(dir, "Numeros.txt");
		
		try{
			
			arq.createNewFile();
			
			FileWriter fileWriter = new FileWriter(arq, true);
			
			PrintWriter printWriter = new PrintWriter(fileWriter);
			
			printWriter.println(4);
			printWriter.println(2 + " " + 10);
			printWriter.println(20 + " " + 40);
		
			
			
			printWriter.flush();
			
			printWriter.close();
			
			
		}catch(IOException e){

			e.printStackTrace();
		}
		
	}

E aqui o método que estou usando para leitura :

private void lerN(User user){
		
		File dir = new File("E:\\TutorialArquivos");
		File arq = new File(dir, "Numeros.txt");
		
		try{
			
			FileReader fileReader = new FileReader(arq);
			
			BufferedReader bufferedReader = new BufferedReader(fileReader);
			
			String linha = "";
			
			while((linha = bufferedReader.readLine() ) != null ){
				System.out.println(linha);
				
			}
			
			fileReader.close();
			bufferedReader.close();
			
		}catch(IOException e){
			
			e.printStackTrace();
		}
		
		
	}

O meu problema é que eu só consigo ler aqueles valores que foram escritos no txt, gostaria de saber como é possível fazer operações com aqueles valores. Por ex.: somar os valores de uma mesma linha.

Desde já agradeço a atenção.

4 Respostas

Rodrigo_Sasaki

Já tentou converter eles? :slight_smile:

cledson2011
Usa o metodo split para separar cada valor lido , e vc vai jogando em um vetor .. Depois é só fazer a soma dos valores. Pequeno exemplo..
while(arquivo.ready){
String linhaLida = arquivo.readLn();   
       int s[] = Integer.parseInt(linhaLida.split("+"));   
}

soma(s[0] + s[1]);
AbnoanMuniz

@digaoneves
Tentei fazer a conversão, porem da erro visto que "2, 10" ele não lê como se fosse dois numeros.

Tentei desta forma :

int valores [] = new int [20];
			
			
			
			while((linha = bufferedReader.readLine() ) != null ){
				
					for (int i = 0; i < valores.length; i++) {
						valores[i] = Integer.parseInt(linha);
						
						
						
					}

@cledson2011

Realmente não conheço esse método Split.

Se você pudesse explicar como utilizar-lo, ficaria grato.

Rodrigo_Sasaki

Cara, a documentação da classe String explica tudo isso aí, inclusive o método split

Criado 30 de agosto de 2012
Ultima resposta 30 de ago. de 2012
Respostas 4
Participantes 3