Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Including a text file inside a jar file and reading it [duplicate]

Possible Duplicate:
Java resource as file

I am kind of new to Java and I am trying to get a text file inside a Jar file.

At the moment when I execute my jar I have to have my text file in the same folder as the jar fil. If the text file is not there I'll get a NullPointerException, which I want to avoid.

What I want to do is to get the txt file inside the jar so I wont have this problem. I tried some guides but they didn't seem to work. My current read function goes like this:

public static HashSet<String> readDictionary()
{
    HashSet<String> toRet = new HashSet<>();
     try
     {
            // Open the file that is the first 
            // command line parameter
            FileInputStream fstream = new FileInputStream("Dictionary.txt");
        try (DataInputStream in = new DataInputStream(fstream)) {
            BufferedReader br = new BufferedReader(new InputStreamReader(in));
            String strLine;
            //Read File Line By Line
            while ((strLine = br.readLine()) != null)   {
            // Read Lines
                toRet.add(strLine);
            }
        }
            return toRet;
     }
     catch (Exception e)
     {//Catch exception if any
            System.err.println("Error: " + e.getMessage());
     } 
     return null;
}
like image 707
Nadav Avatar asked May 04 '12 16:05

Nadav


1 Answers

Don't try to find a file as a "file" in a Jar file. Use resources instead.

Get a reference to the class or class loader and then on the class or class loader call getResourceAsStream(/* resource address */);.


See similar questions below (avoid creating new questions if possible):

  • Reading a resource file from within jar
  • How do I read a resource file from a Java jar file?
  • Accessing a file inside a .jar file
  • How to read a file from JAR archive?
like image 98
Hovercraft Full Of Eels Avatar answered Nov 15 '22 01:11

Hovercraft Full Of Eels