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;
}
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):
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With