Eu tenho uma classe que abre um arquivo e lê o seus dados, até ai tudo bem…
Se eu abrir um documento com esta classe e no meio da operação apagar o documento, que é um txt, o aplicativo ainda continua lendo o mesmo e trazendo os dados, por que?
Sendo que quando eu abro o documento, eu deixo o “link” em memória, seria esta a causa?
Para abrir o documento eu uso a classe java.io.RandomAccessFile
Manipulação de arquivos
3 Respostas
será que você pode colar seu código, somente a parte em que você lê o arquivo?
Algumas classes como a BufferedReader por exemplo lê pedaços relativamente grandes de dados retirados do arquivo de uma só vez e mantêm esses dados em buffer, talvez por isso vc ainda possa estar lendo informações do arquivos.
MAS, antes de tirar qualquer conclusão gostaria de ver seu código.
Blz, abaixo segue a parte do código que abre o arquivo e lê os dados.
File file = new File(Importer.PATH_FILE_READ + this.properties.getProperty("nameFile"));
if(file.exists()){
RandomAccessFile fromFile = new RandomAccessFile(file, "r");
if(fromFile.getFilePointer() < Long.valueOf(this.properties.getProperty("pointer"))){
this.properties.setProperty("pointer", "0");
}
//Importer.LOGGER.info("OPEN FILE OF READ");
for(;;){
//RandomAccessFile fromFile = new RandomAccessFile(file, "r");
/*if(fromFile.getFilePointer() < Long.valueOf(this.properties.getProperty("pointer"))){
this.properties.setProperty("pointer", "0");
}*/
fromFile.seek(Long.valueOf(this.properties.getProperty("pointer")));
//Insere os dados do arquivo moqueuexxxxx.txt no banco
try{
for(String temp = null; (temp = fromFile.readLine()) != null; ){
this.properties.setProperty("pointer", String.valueOf(fromFile.getFilePointer()));
this.updateFileConf();
Importer.LOGGER.debug("UPDATE POINTER OF FILE CONTROL");
if(this.checkMo(temp)){
this.dao.insert(this.transformDataToMoQueue(temp));
Importer.LOGGER.info("MoQueue INSERTED WITH SUCESS");
} else{
Importer.LOGGER.info("NOT INSERT: " + temp);
}
}
....
Ve se ajuda, senão, coloco toda a classe…
karamba, que zona hahaha.
Kra não consegui ver nem onde vc apagou o arquivo, sugiro que você tente simplificar sua classe rs
No mais, de uma olhada na API das classes que você está usando: http://java.sun.com/javase/6/docs/api/
talvez ajude
flw
Criado 17 de março de 2008
Ultima resposta 17 de mar. de 2008
Respostas 3
Participantes 2
Alura Sistemas operacionais: entenda seu conceito e suas funções Descubra o que são sistemas operacionais, suas funções e tipos. Aprenda tudo de forma clara e objetiva. Não perca tempo!
Casa do Codigo Orientacao a Objetos: Aprenda seus conceitos e suas... Por Thiago Leite e Carvalho — Casa do Codigo