Я написал программу для файлов копий. Для каждого файла есть поток, который передает процесс копирования. После копирования файла я хочу удалить файл, но файл заблокирован. После завершения процесса я закрыл входной поток и выходной поток файла. Любые идеи, почему я не могу удалить файлы, даже после того, как оба потока были закрыты? Проект довольно большой, поэтому я не могу опубликовать весь код здесь.Java: файл заблокирован?
Это та часть, где файл копируется:
OutputStream outputStream = null;
try {
outputStream = new FileOutputStream(outputFile);
int read = 0;
byte[] bytes = new byte[1024];
while ((read = inputStream.read(bytes)) != -1) {
outputStream.write(bytes, 0, read);
}
outputStream.flush();
} catch (Exception e) {
e.printStackTrace();
} finally {
if(inputStream != null) {
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(outputStream != null) {
try {
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Что вы подразумеваете под "копией"? В любом случае не изобретайте колесо повторно: http://stackoverflow.com/questions/927203/java-copy-file-to-either-new-file-or-existing-file – Ozgur
Просто потому, что вы можете скопировать его с помощью java программа не означает, что программа java - это то, что блокирует файл. Может быть, что-то еще на вашем компьютере блокирует этот файл? –
Какую ОС вы используете? –