Problem locating file in a classpath

Posted by Gandalf StormCrow on Stack Overflow See other posts from Stack Overflow or by Gandalf StormCrow
Published on 2010-04-19T11:13:42Z Indexed on 2010/04/19 11:43 UTC
Read the original article Hit count: 408

Filed under:

I'm trying to read in file content, ex :

public void myMethod(){
     FileInputStream fstream = new FileInputStream(fileLocation);
           // Get the object of DataInputStream
           DataInputStream in = new DataInputStream(fstream);
           BufferedReader br = new BufferedReader(new InputStreamReader(in));
           String strLine;
     while ((strLine = br.readLine()) != null) {
....
....
.....
end while 
end method

And I have at the begining of the class body private String fileLocation; and at the end of a class I have a getter and setter for it. Now I'm trying inject this file location from spring inside bean from this class and I specify the init-method of this class. But I get error cannot find the specified file as if its not on a classpath but it is inside war file? I'm building the project with maven and I put file in src/main/resources This is the error I get when trying to read file :

Error: src\main\resources\ids.txt (The system cannot find the path specified)

That is when I tried this :

FileInputStream fstream = new FileInputStream("src\\main\\resources\\ids.txt");

how to reference the properly from the classpath?

EDIT

When I edit my code according to @BalusC solution , here is how it looks but I still get null error :

ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); 
   InputStream input = classLoader.getResourceAsStream("src/main/resources/ids.txt");
   // Get the object of DataInputStream

   BufferedReader br = new BufferedReader(new InputStreamReader(input));
   String strLine;
 while ((strLine = br.readLine()) != null) {
    ....
    ....
    .....
    end while 
    end method

© Stack Overflow or respective owner

Related posts about java