I want in line with the APIs I personally use, to implement a technique by having an InputStream parameter (demonstration of FileInputStream) which will call a technique having a File argument.

implementedMethod(InputStream is){
    FileInputStream fis = (FileInputStream)is; //always works
    File f = (???) ????(???).???;
    calledMethod(f);
}

So how do you provide that File when all I've is really a FileInputStream? I do not know very well what a FileChannel or perhaps a FileDescriptor (in FIS) are exactly and just how they work.

I am speculating this can not be done which I will need to really write a (temp) file around the filesystem. Otherwise, basically can make my file in memory rather with FileChannel or FileDescriptor, as well as with something as RandomAccessFile (?) Let me understand how...

One thing creating a readable File object requires it to exist somewhere around the disk? I've found this odd...

So far as I understand, there's no method of getting the file title from the FileInputStream.

For those we all know, the stream might have been built from the file descriptor representing, for instance, a socket.

My recommendation is always to re-think your design.