Home > Software engineering >  How to create an instance of java.io.File from a byte[] without saving the file to the disk
How to create an instance of java.io.File from a byte[] without saving the file to the disk

Time:10-31

I must use an existing method: method.invoke(myClassLoader, myFile.toURI().toURL()); where myFile is an instance of File and I need to create it from a byte[] without saving the file on the disk, is this possible?

This is what I tried but it creates a file on the disk and writes it:

    byte[] bytes = ...;
    File tempFile = File.createTempFile("prefix", "suffix");
    FileOutputStream fos = new FileOutputStream(tempFile);
    fos.write(bytes);
    method.invoke(myClassLoader, tempFile.toURI().toURL());

CodePudding user response:

The parameter of the invoked method is URL. You can use Jimfs (An in-memory file system for Java 7 ) to create a file emulation in memory and get its URL (path.toUri().toURL()).

  • Related