public File createPlaintextTempFile(ByteProvider provider, String filenamePrefix,
			TaskMonitor monitor) throws IOException {
		File tmpFile =
			Application.createTempFile(filenamePrefix, Long.toString(System.currentTimeMillis()));
		monitor.setMessage("Copying " + provider.getName() + " to temp file");
		monitor.initialize(provider.length());
		try {
			FSUtilities.copyByteProviderToFile(provider, tmpFile, monitor);
		}
		catch (CancelledException e) {
			throw new IOException("Copy was cancelled: " + provider.getName());
		}
		return tmpFile;
	}
Exports the bytes in a {@link ByteProvider} into normal {@link File} that can be
used as the caller wishes.
<p>
This method is labeled as 'plaintext' to differentiate it from the standard obfuscated 
temp files that are produced by this service.
 
@param provider {@link ByteProvider} that will be written to a temp file
@param filenamePrefix filename prefix of the newly created File 
@param monitor {@link TaskMonitor} 
@return temporary {@link File} 
@throws IOException if error copying data or if cancelled
Ghidra/Features/Base/src/main/java/ghidra/formats/gfilesystem/FileSystemService.java