private File getOrCreateLocalFile(File file) throws IOException { synchronized (localInputFiles) { File localFile = (File) localInputFiles.get(file); if (localFile == null) { localFile = FileTool.getInstance().generateNewWorkingFile(null, "java", "ftpin", true); this.localInputFiles.put(file, localFile); FileTool.getInstance() .copy( getFileInputStream(file), FileSystemManager.getFileOutputStream(localFile), true, true); FileSystemManager.deleteOnExit(localFile); } return localFile; } }