Ler arquivo e remover Strings duplicadas
Publicado por Mayron Cachina 24/09/2007
[ Hits: 13.762 ]
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...");
}
}
Copia de um arquivo para outro
Classe java para converter jTableModel em HTML / Open Office/Libre Office/Excel (todos)
Microssistema de controle de compras
Escrevendo num arquivo em java
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Instalando partes faltantes do Plasma 6
Adicionar botão "mostrar área de trabalho" no Zorin OS
Como montar um servidor de backup no linux
Estou tentando ser legalista, mas tá complicado! (9)
espelhar monitores nao funciona (2)
SQLITE não quer funcionar no LINUX LMDE6 64 com Lazaruz 4.2 64bit (n... (1)









