Ler arquivo e remover Strings duplicadas
Publicado por Mayron Cachina 24/09/2007
[ Hits: 13.817 ]
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...");
}
}
Escrevendo num arquivo em java
Ordenação crescente e decrescente
XFCE - quase um Gnome ou Plasma mas muito mais leve
LXQT - funcional para máquinas pererecas e usuários menos exigentes
Instalação do K3s Single-Node com Rancher no Ubuntu 24.04
Usei o NotebookLM para Auditar Logs do Linux
Cinnamon seria a aposta acertada frente às outras interfaces gráficas mais populares?
Samba 4 AD-DC 2026: Como instalar e configurar um Active Directory (via APT-GET)
[Resolvido] Sumiço de redes e micro quedas no iwd/iwgtk (Realtek rtw88)
Como Configurar DNS Reverso (PTR) em Ambientes Linux e Microsoft
Preparando o Ambiente para Administrar o Samba 4 a partir do Windows com RSAT
Problema ao instalar Linux Mint. (1)
Midia de instalação LM-21.3 não inicializa (11)
A diferença entre a fala de um Samuel e a fala de alguém que conhece o... (9)









