Nao encontra arquivo

Estou tentando fazer um exemplo que vi em um livro mas não esta dando certo. Recebo uma mensagem no console do eclipse dizendo :

Ocorreu um erro com o arquivo src\br\livrojavanaweb\servlet\contador.txt (O sistema não pode encontrar o caminho especificado)
Ocorreu um erro com o arquivo src\br\livrojavanaweb\servlet\contador.txt (O sistema não pode encontrar o caminho especificado)

Alguem tem uma dica ?

BufferedReader reader = new BufferedReader(new FileReader("src\\br\\livrojavanaweb\\servlet\\contador.txt"));
			setContador((Integer) Integer.parseInt(reader.readLine()));
			reader.close();

Use / no lugar de \ .

coloque ‘/’ antes de src tbm. Se não vc precisará indicar o caminho até onde sua aplicação está publicada no seu seevidor.

nao deu certo…

Vc tá colocando dentro da pasta(package) que está seu código???

qual é o absolut_path do seu aquivo contador.txt?
Post o local físico do seu arquivo no sistema por favor!
[color=red] Ex: C:/blablabla/seuWorkspace/…[/color]

isso aqui que vc perguntou ?

C:\workspace\LivroJavaNaWeb\src\br\livrojavanaweb\servlet

Entao Rafael, com o caminho absoluto deu certo. Mas sempre tem que ser assim ? nao tem jeito pra pegar a partir do src apenas ?

Tive esse problema usando Flex com Eclipse/NetBeans

Foi resolvido com uma configuração que faz nas propriedades do projeto,
setando já uma parte do diretório padrão para dar certo se quiser não
precisar digitar todo o caminho.

No caso me apoiei na vídeo aula do Prof. Neri ensinando a usar Java + Flex

O correto é não usar caminhos absolutos.
Tente entender como o mecanismo funciona, de que forma o java trata a questão dos caminhos de arquivos.
Por exemplo, crie uma classe como esta

import java.io.File;
public class ClasseCaminho {
	public static void main(String args[]){
		File f = new File("");
		System.out.println("Caminho absoluto: " + f.getAbsolutePath());
	}
}

Salve em algum lugar (arquivo ClasseCaminho.java), compile com

javac ClasseCaminho.java

E execute com

java ClasseCaminho

O console deverá exibir o caminho absoluto até aquela pasta.
Faça modificações no parâmetro do construtor File(""), colocando, por exemplo, uma contra barra

import java.io.File;
public class ClasseCaminho {
	public static void main(String args[]){
		File f = new File("/");
		System.out.println("Caminho absoluto: " + f.getAbsolutePath());
	}
}

Salve, compile e execute novamente. Veja qual foi a diferença.
Você deve estudar melhor a classe File e entender de que forma ela pode te auxiliar e/ou atrapalhar quando você tem necessidade de gerar ou obter um arquivo no sistema.
Lembrando, caso esteja em um ambiente web, tudo isso será diferente.

Não precisa e nem deve…

C:\workspace\LivroJavaNaWeb\src\br\livrojavanaweb\servlet

a barra ( ‘/’ ) antes de src deveria subistituir “C:\workspace\LivroJavaNaWeb”…

e a url do ser arquivo tinha que ser: src/br/livrojavanaweb/servlet/contador.txt

BufferedReader reader = new BufferedReader(new FileReader("/src/br/livrojavanaweb/servlet/contador.txt"));  
setContador((Integer) Integer.parseInt(reader.readLine()));  
reader.close();  

Isso aqui (ACIMA) tinha que funfar… Verifique se quando se Tomcat/JBoss subir se ele tá colocando o arquivo no target… pois tem que ter um cópia desse arquivo dentro do seu server.

não deveria ser “/br/…” ??
Ou tenta mover pra raiz do projeto e usa “/contator.txt” .-.
ou mover para uma pasta na raiz “/files/contador.txt

Talvez isso tudo nem seja preciso.
Primeiro, obtenha o contexto da aplicação, com o método

getServletContext()

A partir dele, pode-se obter a localização de qualquer arquivo que existe neste contexto.
Não sabe o que é contexto? É o projeto em si, mas compilado e colocado em um arquivo .war (neste caso).

Será que no livro Servlet & JSP - Use a Cabeça
tem com aprender técnicas avançadas assim?

Estou começando a ler ele ainda, por isso quem já o leu
e quiser deixar uma dica aí, seja bem vindo.

Escrevi para acrescentar se possível algo mais no conteúdo pegando uma carona.

Obrigado a todos aí pelas orientações…

[quote=JavaDreams]Será que no livro Servlet & JSP - Use a Cabeça
tem com aprender técnicas avançadas assim?

Estou começando a ler ele ainda, por isso quem já o leu
e quiser deixar uma dica aí, seja bem vindo.

Escrevi para acrescentar se possível algo mais no conteúdo pegando uma carona.[/quote]

Boa noite senhores!
Me desculpem por estar incomodando vocês com um assunto que, aparentemente, deveria ser tão simples, no entanto estou encontrando a mesma dificuldade, e até então não consegui uma solução eficiente.
Estou trabalhando em um projeto que usa Spring, jsf, maven e jpa. Necessito de que o projeto faça a leitura de um arquivo .sql para inserir um grupo de cidades no banco de dados. O nome do arquivo é cidades.sql, bem óbivio. rsrsrs.
Dentro da estrutura de diretórios, o meu arquivo se encontra no seguinte caminho: src/resources/scripts/cidades.sql, mas não adianta, a aplicação não consegue encontrar o arquivo.

Método da Classe de inicialização do sistema

private void inserirCidades() {
		try {
			List<Cidade> cidades = new ArrayList<Cidade>();
			cidades = cidadeDao.listar();

			if (cidades.size() == 0){
				
				String caminho = "/scripts/cidades.sql";
				cidadeDao.incluirViaArquivo(caminho);
			}

		} catch (Exception e) {
			UtilLog.getLog().error("Erro na Inserção de Cidades: " + e.getMessage(), e);
		}
	}

Método da Classe que executa a leitura do arquivo

        @Override
        @SuppressWarnings("resource")
	public void incluirViaArquivo(String caminho) throws IOException {
		File arquivoSql = new File(caminho);
		FileReader fr = new FileReader(arquivoSql);
		BufferedReader br = new BufferedReader(fr);
		String linha = br.readLine();  
		while( linha != null ){
			Query query = em.createNativeQuery(linha);
			query.executeUpdate();
		}
		
	}

O que pode estar havendo de errado pessoal?