Ler arquivo e remover Strings duplicadas
Publicado por Mayron Cachina 24/09/2007
[ Hits: 13.812 ]
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...");
}
}
Microssistema de controle de compras
Classe java para converter jTableModel em HTML / Open Office/Libre Office/Excel (todos)
Gentoo binário em 2026: UEFI, LUKS, Btrfs e Systemd
Trabalhando Nativamente com Logs no Linux
Jogando Daikatana (Steam) com Patch 1.3 via Luxtorpeda no Linux
LazyDocker – Interface de Usuário em Tempo Real para o Docker
Usando dracut e dispensando genkernel no Gentoo + LUKS + Btrfs
Curso GRÁTIS: OCS Inventory NG - Do Deploy ao Hardening com foco em Segurança da Informação!
Instalando fontes via script no Nautilus Scripts no Gnome do Debian 13
O que houve com slackware ??? (1)
Instalar Linux em notebook Sony Vaio VPCEG13EB (7)
VirtualBox no Ubuntu 25.10 sem redimensionam... automatico. (2)









