eu possuo uma variável que é um diretório da aplicação, preciso ler um arquivo que está dentro desse diretório…
sei que posso pegar o path do diretório e concatenar para achar o caminho completo do arquivo e à partir disso criar um File, mas…
gostaria de usar algo como abaixo
File[]arquivosXML=dirProcessar.listFiles();
vi que existem outras assinaturas para o método listFiles que são para filtro, mas não consegui montar um filtro para pegar o arquivo que preciso… eu sei o nome completo do arquivo, não preciso nem de criar filtros elaborados nem nada disso
cheguei a pensar nisso, mas queria saber se tem alguma forma de fazer isso com menos linhas… e o diretório vai conter cerca de 11000 arquvios, gostaria de conseguir algo com melhor performance, não sei se varrendo dessa forma vai ficar devagar demais…
pensei também em montar um file com o path do diretório e concatenar com o nome do arquivo, mas achei que com o filtro seria mais rápido
K
kozak
puxa… é muito arquivo pra varrer mesmo…
neste caso tb fico curioso, pois nunca precisei deperformance com pouco arquivos.
do jeito que eu coloquei creio que ficaria lento no seu caso, por culpa do IF
afamorim
Na verdade acesso direto sempre é mais rápido do que uma pesquisa.
caso ele não encontre ele vai dar erro de FileNotFound.
mesmo montando um filtro ele terá que correr os 1000 arquivos do diretório pois qualquer um pode vim atender ao critério passado por você, então tem que se checar mesmo.
no caso do filter http://java.sun.com/j2se/1.4.2/docs/api/java/io/FilenameFilter.html ele não passa de uma interface aonde você implementa o método contendo a regra que você irá querer implementar utilizada para filtrar, justamente para diminuir a quantidade de código passada como exemplo anteriormente e torna-la reaproveitável.
mais caso você queria performance o acesso direto sempre é a melhor forma.