Estou com o seguinte comportamento estranho.
Estou criando um arquivo texto, usando FileWriter e BufferedWriter. Ao final da execução (void main), o arquivo gerado é eliminado.
Se eu debugar e interromper a execução, o arquivo é mantido.
Percebi que esse comportamento começou, a partir de alguma versão do Java.
Alguém passou por isso?
Ao criar arquivo, apaga no final da execução
L
6 Respostas
J
Estranho… O que você tá criando não é um arquivo temporário? Ou talvez esteja setando esta propriedade.
Tenta criar o arquivo em um local ao qual você possa ler e escrever com baixos privilégios do SO.
L
Eu sempre usei dessa forma. Tenho o código na cabeça.
public static void write( String dir, String fileName, boolean append, String content ) {
FileWriter fw = null;
BufferedWriter bw = null;
try {
fw = new FileWriter(new File(dir,fileName),append);
bw = new BufferedWriter(fw);
bw.write(content);
bw.flush();
} catch (Exception e) {
// TODO: handle exception
} finally {
try {bw.close();}catch(Exception e) {}
try {fw.close();}catch(Exception e) {}
}
}
Vc está usando o parâmetro append como true ou false?
L
Append = true.
for( int i = 0; i < listName.size(); i++ ) {
String line = “<a>START:person</a>”+listName.get(i)+"\n";
FileUtil.write(dir2, “nomes-train.txt”, true, line);
}
L
Solucao aceita
1 like
[RESOLVIDO] - No FileUtil tem o método delete, que estava com File file = New File(…
Esse código deveria estar deixando uma referência de memória, que gerava esse comportamento.
Alterei para:
public static boolean delete(String dir, String fileName) {
return new File(dir,fileName).delete();
}
Arquivo mantido!
Que FileUtil?
Variáveis locais são desalocadas assim que o método foi executado.
E mesmo assim, ter referência a um objeto File, não impede que ele seja apagado, o que muda é que depois de apagado o método exists() retorna false.
Provavelmente você tem algum código que está mantendo um InputStream ou OutputStream aberto, aí não dá pra apagar mesmo.
Criado 29 de junho de 2020
Ultima resposta 30 de jun. de 2020
Respostas 6
Participantes 4
Alura Git Flow: entenda o que é, como e quando utilizar Entenda o que é Git Flow, como funciona seu fluxo com branches como Master, Develop, Feature, Release e Hotfix, além de vantagens e desvantagens.
Casa do Codigo Ontologias e Web Semantica: Do conceito a aplicacao Por Ivam Galvao Filho — Casa do Codigo