Eai galera, estou com uma duvida para manipulação de arquivo...
eu tenho um arquivo que necessita ser adicionado conteudo novo, sem sobrescreve-lo,
So que este arquivo novo, virá com informações que são iguais a do arquivo antigo (EX. cabeçalho),
este conteudo novo, terá que ser comparado e descartado, assim adicionando somente o conteudo
realmente necessario...
A duvida é: Como comparar este conteudo se os arquivos estao em um StringBuffer, e como
excluir o conteudo desnecessario, adicionando somente o conteudo novo?
package gc.gerador.reader;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.Writer;
public class TestandoLeitores
{
public static void main(String[] args) throws FileNotFoundException, IOException
{
//Aki eu defino o caminho que o arquivo está o diretório
String nomeProjeto = "Projeto";
File file = new File("C:\Des\" + nomeProjeto.toLowerCase() + "\src\br\" + nomeProjeto.toLowerCase() + "\util\facade\MensagemSucesso.java");
FileReader reader = new FileReader(file);
BufferedReader buffer = new BufferedReader(reader);
StringBuffer sb = new StringBuffer();
if(file.isFile())
{
//no while eu estou percorrendo todas as linhas do meu arquivo e armazenando em um buffer.
while (buffer.ready())
{
sb.append(buffer.readLine() + "\n");
}
//neste momento eu deleto o ultimo caracter do meu arquivo, que no caso é um '}'
sb.reverse().delete(1,2);
sb.reverse();
//este metodo simboliza o conteudo necessario a ser adicionado no meu arquivo
sb.append(conteudoADD());
//este é o ponto em que eu acredito que devo comparar o conteudo antigo com o novo e
//deletar as linhas que forem iguais, mantendo
//somente o conteudo novo para assim ser adicionado
}
// //Gravar Arquivo
file.getParentFile().mkdirs();
Writer fw = new OutputStreamWriter( new FileOutputStream(file) ) ;
fw.write( sb.toString() );
fw.close();
// //Fim Gravar Arquivo
}
static String conteudoADD()
{
String nomeProjeto = "projeto";
StringBuffer sb = new StringBuffer();
sb.append("package br." + nomeProjeto.toLowerCase() + ".util.facade;\n");
sb.append("\n");
sb.append("/**\n");
sb.append(" * ESCREVA O JAVADOC!!!\n" );
sb.append(" */\n");
sb.append("public interface MensagemSucesso\n");
sb.append("{\n");
sb.append("\t/* GENÉRICA */\n");
sb.append("\tpublic static final String EXCLUSAO_EFETUADA_COM_SUCESSO = \"Exclusão efetuada com sucesso.\";\n");
sb.append("}");
return sb.toString();
}
}
package br.projeto.util.facade;
/**
* ESCREVA O JAVADOC!!!
*/
public interface MensagemSucesso
{
/* GENÉRICA */
public static final String INCLUSAO_EFETUADA_COM_SUCESSO = "Inclusão efetuada com sucesso.";
public static final String ALTERACAO_EFETUADA_COM_SUCESSO = "Alteração efetuada com sucesso.";
}
