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.
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.
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();
}
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’.
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 (....) {
}
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