Question: I have this line in my program :

```
InputStream Resource_InputStream=this.getClass().getClassLoader().getResourceAsStream("Resource_Name");

```

But how can I get FileInputStream from it [Resource\_InputStream] ?

Answer: 
Use [`ClassLoader#getResource()`](http://docs.oracle.com/javase/8/docs/api/java/lang/ClassLoader.html#getResource-java.lang.String-) instead if its URI represents a valid local disk file system path.

```
URL resource = classLoader.getResource("resource.ext");
File file = new File(resource.toURI());
FileInputStream input = new FileInputStream(file);
// ...

```

If it doesn't (e.g. JAR), then your best bet is to copy it into a temporary file.

```
Path temp = Files.createTempFile("resource-", ".ext");
Files.copy(classLoader.getResourceAsStream("resource.ext"), temp, StandardCopyOption.REPLACE_EXISTING);
FileInputStream input = new FileInputStream(temp.toFile());
// ...

```

That said, I really don't see any benefit of doing so, or it must be required by a poor helper class/method which requires `FileInputStream` instead of `InputStream`. If you can, just fix the API to ask for an `InputStream` instead. If it's a 3rd party one, by all means report it as a bug. I'd in this specific case also put question marks around the remainder of that API.
You need something like:

```
    URL resource = this.getClass().getResource("/path/to/resource.res");
    File is = null;
    try {
        is = new File(resource.toURI());
    } catch (URISyntaxException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }
    try {
        FileInputStream input = new FileInputStream(is);
    } catch (FileNotFoundException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }

```

But it will work only within your IDE, not in runnable JAR. I had same problem explained [here](https://stackoverflow.com/questions/23854130/eclipse-java-file-fileinputstream-vs-input-stream-when-loading-font-file).