[RESOLVIDO] - Arquivo TXT, com Separador. [ANDROID]

4 respostas
K

Sou novo nessa área (Android/Java), e preciso de fazer um programa que lê um arquivo txt (com separador), e retorne cada um em seu respectivo lugar. Exemplo.

comida.txt

0-----------1--------2
arroz || 2,95 || 10
feijão|| 3,30 || 30
macarrão|| 1,90 || 40

O programa lê o arquivo txt, e logo depois coloca ele na sua posição.

—0----------1-------2
Produtos Preço Qntd.
arroz-------2,95-----10
feijão------ 3,30-----20
macarrão–1,90-----30
Deu pra intender? Não tenho a miníma ideia de como fazer, e eu preciso de fazer isso com uma certa urgência. : :?

Bem, se alguém puder me ajudar, eu seria eternamente grato.

4 Respostas

R

Olá, bom dia.

Use as classes:
http://developer.android.com/reference/java/io/BufferedWriter.html
http://developer.android.com/reference/java/io/BufferedReader.html

public class Classe() ... {
	// abre o arquivo original e carrega no BufferedReader
	BufferedReader br = new BufferedReader(new FileReader(new File("nomeDoArquivoOrigem")));
	
	// abre um BufferedWriter criando o arquivo de origem (append = false)
	BufferedWriter bw = new BufferedWriter(new FileWriter(new File("nomeArquivoDestino"), false));

	String linha = null;
    while ((linha = br.readLine()) != null) {  
            // lê o arquivo até o fim, linha por linha, quando terminar, ele sai do loop
            System.out.println(linha);
            // faça o seu processamento aqui... com linha.substring(...), por exemplo
    }	       
	
    // expurga o arquivo (caso tenha algo em buffer)
    bw.flush();
    
    // fecha o reader e writer
    br.close();
    bw.close();
}

Abraço,

K

Muito obrigado. Bem, eu pego o seu código, e uno ao que eu tinha feito de ler/imprimir/salvar arquivo txt, só que na hora de rodar da esse error: ‘Default constructor cannot handle exception type IOException thrown by implicit super constructor. Must define an explicit constructor’.

R

Oi, boa tarde.

Pelo jeito você colocou algum código que lança exceção dentro do construtor. Não faça isso. Coloque dentro de um método e trate dentro de um try…catch?

Tente colocar um “try … catch” no trecho de código onde faz as operações com o arquivo.

try {
       // abre o arquivo original e carrega no BufferedReader  
       BufferedReader br = new BufferedReader(new FileReader(new File("nomeDoArquivoOrigem")));  
      
       // abre um BufferedWriter criando o arquivo de origem (append = false)  
       BufferedWriter bw = new BufferedWriter(new FileWriter(new File("nomeArquivoDestino"), false));  
  
       String linha = null;  
       while ((linha = br.readLine()) != null) {    
          // ...    
    } catch (....) {
    } catch (....) {
    }

Abraço,

K
try {
	           
	        	// abre o arquivo original e carrega no BufferedReader
	        	BufferedReader br = new BufferedReader(new FileReader(new File("Root:/mnt/sdcard/t1.txt")));
	        	
	        	// abre um BufferedWriter criando o arquivo de origem (append = false)
	        	BufferedWriter bw = new BufferedWriter(new FileWriter(new File("Root:/mnt/sdcard/t1.txt"), false));

	        	String linha = null;
	            while ((linha = br.readLine()) != null) {  
	                    // lê o arquivo até o fim, linha por linha, quando terminar, ele sai do loop
	                    System.out.println(linha);
	                    
	                    String[] linhaDoArquivo = reader.readLine().split(";");  
		                String Produto = linhaDoArquivo[0];  
		                String Preço = linhaDoArquivo[1];  
		                String Quantidade = linhaDoArquivo[2];  
	            }	       
	        	
	            // expurga o arquivo (caso tenha algo em buffer)
	            bw.flush();
	            
	            // fecha o reader e writer
	            br.close();
	            bw.close();	             	 

	        } catch (Exception e) {
	            e.printStackTrace();
	            System.out.println("Erro ao ler arquivo de texto " + e.toString());
	        }
	
	    }
}

Fiz o processamento, e pá. Porém aparece os seguintes erros:

File cannot be resolved to a type
FileWriter cannot be resolved to a type
The constructor BufferedWriter(FileWriter) is undefined
Nesse caso, eu teria que declarar o java.io.file e filewriter?

E esse error aqui dá no meu processamento, não sei por que diabos :C
reader cannot be resolved

Criado 14 de junho de 2012
Ultima resposta 18 de jun. de 2012
Respostas 4
Participantes 2