Including a text file inside a jar file and reading it

embedded-resource, jar, java, nullpointerexception

Solution

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?

Problem

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; } ```

Original source

Related problems