Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to read text file relative path

I have read sources here & there, but did not get the following code working. Basically, I wish to read a text file, named 'Administrator' from the folder 'src'. I will need a relative path, since this project may be transferred to another person. Please be patient with me.

public void staffExists () throws IOException
    {               
        //http://stackoverflow.com/questions/2788080/reading-a-text-file-in-java
        BufferedReader reader = new BufferedReader(new FileReader(getClass().getResourceAsStream ("/DBTextFiles/Administrator.txt")));

        try
        {               
            String line = null;
            while ((line = reader.readLine()) != null)
            {
                if (!(line.startsWith("*")))
                {
                    System.out.println(line);
                }
            }

        }
        catch (IOException ex)
        {
            ex.printStackTrace();
        }               

        finally
        {
            reader.close();
        }           
    }
like image 724
user2945412 Avatar asked Nov 09 '13 08:11

user2945412


2 Answers

Now I get it, somewhat answers here & there do help in getting me to the goal. Did a short edit to my code & it worked. Hope it'll also help some poor souls out there.

String filePath = new File("").getAbsolutePath();
System.out.println (filePath);

//http://stackoverflow.com/questions/2788080/reading-a-text-file-in-java    
//http://stackoverflow.com/questions/19874066/how-to-read-text-file-relative-path
BufferedReader reader = new BufferedReader(new FileReader(filePath + "/src/DBTextFiles/Administrator.txt"));

try
{                           
    String line = null;         
    while ((line = reader.readLine()) != null)
    {
        if (!(line.startsWith("*")))
        {
            System.out.println(line);
        }
    }               
}
catch (IOException ex)
{
    ex.printStackTrace();
}               

finally
{
    reader.close();
}                   
like image 132
user2945412 Avatar answered Sep 28 '22 06:09

user2945412


This is a valid absolute path (on the systems I'm aware of):

    /path/to/directory/../../otherfolder/etc/

So what the other answer was saying, was to get the path to the current directory with:

    String filePath = new File("").getAbsolutePath();

Then concatenate your relative path with:

    filePath.concat("path to the property file");
like image 39
willy Avatar answered Sep 28 '22 06:09

willy