Ler arquivo e remover Strings duplicadas
Publicado por Mayron Cachina 24/09/2007
[ Hits: 13.802 ]
Homepage: http://mayroncachina.net
Pessoal, uma pequena aplicação para exercitar a escrita de arquivos...
Tive algumas dúvidas no começo de como ler todo o vetor e retirar as strings com duplicidade...
O código está todo comentado para melhor compreenção.
Mas ai está de um modo simples, fácil e descomplicado...
package br.com.dragon.utils.lerArquivo.exec;
import java.io.*;
import java.util.*;
public class Main {
public String file;
public static String origem;
public static String destino;
public Main(String file){
this.file = file;
}
public void lerTexto() throws IOException{
// VARIÁVEL ONDE SERÁ GUARDADA A LINHA PERCORRIDA
String line = "";
// Usamos os BufferedReader para abrir o arquivo.
BufferedReader bf = new BufferedReader(new FileReader(this.file));
// Instanciamos uma collection para guardar o nosso conteúdo
Collection lista = new ArrayList();
// variáveis para contagem de linhas (só pra ficar mais bonitinho, hehehe)
int linhaT = 0;
int linhaF = 0;
/* AQUI SERÁ ONDE VAMOS PREENCHER NOSSA LISTA */
while ((line = bf.readLine()) != null) {
System.out.println("PERCORRENDO LINHA: " + linhaT++);
// COMANDO PRA PREENCHER A LISTA "line"
lista.add(line);
}
/* AQUI SERÁ O TRATAMENTO
* DA LISTA A SER SALVA
* SEM REPETIÇÕES....
*/
// O MÉTODO "LinkedHashSet" SERVE PARA NÃO EMBARALHAR A LISTA
// QUE NO CASO O COMANDO "HashSet" faz...
Collection lista2 = new LinkedHashSet(lista);
// CRIA O NOVO ARQUIVO ONDE SERÁ ARMAZENADA A LISTA
File arquivo = new File(destino);
// ABRE O ARQUIVO DE DESTINO PARA A GRAVAÇÃO
BufferedWriter bw = new BufferedWriter(new FileWriter(arquivo));
// PERCORRE TODA A NOVA LISTA
for (Object item : lista2){
linhaF++;
/* ESCREVE A LISTA NO ARQUIVO...
* OBSERVE O TYPECAST FEITO POIS O
* FOR ESTÁ PASSANDO UM "Object"
*/
bw.write((String) item);
bw.newLine();
}
bw.flush();
bw.close();
System.out.println("VARREDURA COMPLETA...");
System.out.println("TOTAL DE LINHAS NOVO ARQUIVO: " + linhaF);
}
public static void main(String[] args) {
origem = args[0];
destino = args[1];
Main l = new Main(origem);
try{
l.lerTexto();
}catch (IOException ioe) {
ioe.printStackTrace();
}
System.out.println("CONCLUIDO...");
}
}
Ordenação crescente e decrescente
Classe java para converter jTableModel em HTML / Open Office/Libre Office/Excel (todos)
LazyDocker – Interface de Usuário em Tempo Real para o Docker
Instalando COSMIC no Linux Mint
Turbinando o Linux Mint: o poder das Nemo Actions
Inteligência Artificial no desenvolvimento de software: quando começar a usar?
[Resolvido] Algo deu errado ao abrir seu perfil
Usando o VNSTAT para medir o seu consumo de internet
Habilitando clipboard manager no ambiente COSMIC
Quando vocês pararam de testar distros? (8)
Quais licenças open source têm valor jurídico? (7)
Não estou conseguindo fazer funcionar meu Postfix na versão 2.4 no Deb... (1)









