Bom galera já vi muita gente perguntando isso mas ninguem exatamente com o mesmo problema que estou vamos lá:
o erro:
java.io.FileNotFoundException: c:\integrador\arquivos\leitura (Acesso negado)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
at integrador.Integrador.LeArquivo(Integrador.java:58)
at integrador.Integrador.main(Integrador.java:41)
Este erro para cada arquivo que ele tenta grava dentro do for
private static void LeArquivo() {
Integrador.logger.info("Entrando no leitor de arquivos");
File pastaLeitura = new File(config.get("pasta_de_leitura").toString());//o que o config.get recebe aqui é c:\integrador\arquivos\leitura
File pastaEscrita = new File(config.get("pasta_de_escrita").toString());//o que o config.get recebe aqui é c:\integrador\arquivos\escrita
//neste for consigo fazer loop para todos os arquivos que tenho na pasta.
for (int i=0; i<pastaLeitura.list().length; i++){
try {
//já sei a solução basica pro erro tenho que passar o nome do arquivo no FileInputStream e depois no FileOutpuStream tipo c:\integrador\arquivos\leitura\arquivo.txt
//porem tenho vários arquivos com nomes diferentes preciso que todo o arquivo eu leia e depois copie na nova pasta com o mesmo nome
FileInputStream fis = new FileInputStream(pastaLeitura);
FileOutputStream fos = new FileOutputStream(pastaEscrita);
FileChannel inChannel = fis.getChannel();
FileChannel outChannel = fos.getChannel();
outChannel.transferFrom(inChannel, 0, inChannel.size());
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
Integrador.logger.error("erro arquivos não encontrado " + e.getMessage());
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
Integrador.logger.error("Erro ao salvar arquivos " + e.getMessage());
e.printStackTrace();
}
}
}
O que não sei como fazer é pegar o nome do arquivo que estou lendo e passar para o arquivo de saída.
Valew pela ajuda..