Este artigo estuda principalmente o problema da leitura de arquivos no caminho da classe no projeto da web, como segue.
Primeiro, dividimos isso em duas categorias e classificá -lo por contêineres da web
Um é um projeto da Web comum, como o uso do contêiner Tomcat, que é caracterizado pelo pacote compactado sendo descomprimido em uma pasta à medida que o contêiner é iniciado. Quando o projeto é acessado, ele está realmente acessando a pasta, não o pacote JAR ou WAR.
Este é o método de obter o caminho this.getClass().getResource("/")+fileName
Método para obter stream this.getClass().getResourceAsStream(failName);
importar org.springframework.util.resourceutils; arquivo file = Resourceutils.getFile ("ClassPath: test.txt");ou
ClassPathResource ClassPathResource = new ClassPathResource ("test.txt"); Obtenha o arquivo: classPathResource .getFile();
Obtenha o fluxo de arquivos: classPathResource .getInputStream();
O segundo tipo é o contêiner da web incorporado, que tem uma característica de que existe apenas um arquivo JAR, que não será descomprimido após o início do contêiner, e o pacote JAR ou o pacote de guerra é usado quando o projeto é realmente acessado.
Esse tipo de armadilha é a mais provável de encontrar armadilhas. A maior armadilha é que ela é lida da primeira maneira, depurando localmente, funcionando perfeitamente e não no ambiente Linux.
Primeiro, use o método de this.getClass().getResourceAsStream(failName); do caminho this.getClass().getResource("/")+fileName
Ao executar localmente, o penhasco pode ser encontrado e você imprime o caminho. Sim, é o nosso diretório de trabalho e o diretório de projetos eclipse, mas no diretório de destino.
Agora, deixe você analisar por que você fica online, é GG. É muito simples. Para projetos incorporados on -line, apenas colocaremos um arquivo JAR nele. Eu entendo que o caminho no frasco não pode ser obtido. O frasco é uma coisa fechada. Ao contrário das pastas, não pode ser c: /home/xx.jar/file.txt
Lendo arquivos em frascos, só podemos usar fluxos para ler, não arquivar, o arquivo deve envolver o caminho. Acabei de soletrar o caminho do jar
Como ler arquivos no jar:
ClassPathResource ClassPathResource = new ClassPathResource ("test.txt"); Obtenha o fluxo de arquivos: classPathResource .getInputStream();
Resumir
O exposto acima é o conteúdo inteiro deste artigo sobre a leitura dos arquivos no caminho da classe em projetos da web. Espero que seja útil para todos. Amigos interessados podem continuar se referindo a outros tópicos relacionados neste site. Se houver alguma falha, deixe uma mensagem para apontá -la. Obrigado amigos pelo seu apoio para este site!