Caros boa tarde.
Estou com alguns probleminhas aqui.
Estou usando o seguinte código para ler os nós de um arquivo XML:
private static String readTipoXmlFile(File cArquivo) throws IOException {
String TipoArquivo = null;
String ValorNode = null;
// TODO Auto-generated method stub
try {
if (cArquivo.getName() != "null") {
File fXmlFile = cArquivo;
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);
doc.getDocumentElement().normalize();
NodeList nList = doc.getElementsByTagName("ide");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
ValorNode = getTagValue("natOp", eElement); }
}
}
}
catch (Exception e) {
PrintLog.GeraLog("Não Foi possível ler o Arquivo: " + cArquivo.getName() + ". Formato inválido");
Log.FinalizaLOG("Função readTipoXmlFile");
}
boolean checkContains1=ValorNode.contains("TRANSPORTE");
boolean checkContains2=ValorNode.contains("transporte");
if (checkContains1 || checkContains2) {
TipoArquivo = "CTe";
}
else {
TipoArquivo = "Nfe";
}
return TipoArquivo;
} // private static String readTipoXmlFile(File cArquivo)
O meu problema é que alguns dos arquivos que estou recebendo estão inconsistentes, com caracteres estranhos no inicio do arquivo e queria fazer um tratamento disso.
O erro ocorre na linha
Document doc = dBuilder.parse(fXmlFile);
Tudo bem, eu consigo tratar o retorno dessa função, mas quando faço este tratamento, o arquivo está aberto e não consigo renomear, muito menos deletar ou mover de pasta.
Como faço para liberar este arquivo quando houver erro?
Obrigado.