Manipular arquivo dentro do contextPath

Pessoal estou com uma duvida q nao consegui resolver…
eh o seguinte to fazendo um codigo siimples apenas para ler e gravar um arquivo que estah dentro do projeto web…

a estrutura do projeto web eh a seguinte:

ProjetoWeb
|_ src/classes
|_webcontent
|_WEB-INF
|_index.jsp
|_files
|_saida.txt

ai no meu bean eu to fazendo assim:

File arq= new File("/webcontent/files/saida.txt");
		
System.out.println(arq.getAbsolutePath());
System.out.println(arq.exists());

Soh q o que estah imprimindo na tela eh: C:\webcontent\files\saida.txt
e mostra que o arquivo nao existe…

como posso resolver isso…!

desde ja agradeço

como faço para pegar o caminho todo do projeto e conseguir ler este arquivo

Talvez você queira refazer o desenho da árvore…

Mas, mesmo assim. Para pegar o arquivo, você pode fazer algo como:

this.getClass().getClassLoader().getResourceAsStream("saida.txt");

Se saida.txt estiver dentro de webcontent. Se estiver dentro de outra pasta dentro do webcontent, você tem de montar o caminho (acho que seria “files/saida.txt”, não lembro se era com / ou com .).

Agora, para escrever… Não rola. Sua aplicação está “empacotada”, então recomendo fazer algum outro método (base de dados, arquivo em outro lugar (dependendo de seu servidor de aplicação, ele te dá alguns diretórios como data ou conf em variáveis de ambiente))

como o leo.andven disse, utilize o seguinte código para pegar o caminho do arquivo:

this.getClass().getClassLoader().getResourceAsStream("saida.txt");  

ou

File arquivo = new File(getClass().getResource("/br/com/pacote/arquivos/arquivo.txt").toString());

não testei, mas veja se funciona…

e para ler um arquivo texto pode dar uma olhada neste link: http://www.guj.com.br/java/141188-ler-arquivo-txt/2