2014-10-09 6 views
0

Я пытаюсь архивировать файл csv после прочтения его содержимого и сохранения его в базе данных. Я делаю это какНевозможно переместить файл csv из одной директории в другую

String filename = file.getName(); 
File destiantion = new File(getAttribute(ST_ARCHIVE_FOLDER) + "/"+ filename); 
boolean fileArchived = file.renameTo(destiantion); 

где файл = "D: \ Users \ 400220260.INDCORP \ Desktop \ ParameterMargin20141009.csv"
и назначения = «D: \ Users \ 400220260.INDCORP \ Desktop \ Archive \ ParameterMargin20141009.csv»

Пожалуйста, помогите Спасибо заранее

+0

Давайте посмотрим код –

+0

Я забыл закрыть FileReader в моем Файловом объекте. Теперь он работает отлично. – Gurpaldeep

ответ

1

у вас есть объекты файлов, но теперь вы должны скопировать старый файл в новое место. Просто переименование файла не будет делать то, что вы хотите. Это можно сделать так:

public static void copyFile(File sourceFile, File destFile) throws IOException { 
    destFile.createNewFile(); 
    FileChannel source = null; 
    FileChannel destination = null; 

    try { 
     source = new FileInputStream(sourceFile).getChannel(); 
     destination = new FileOutputStream(destFile).getChannel(); 
     destination.transferFrom(source, 0, source.size()); 
    } 
    finally { 
     if(source != null) { 
     source.close(); 
     } 
     if(destination != null) { 
     destination.close(); 
     } 
    } 
} 

Что бы еще проще в использовании метода CopyFile из FileUtils от Apache Commons IO, но поэтому вы должны добавить эту библиотеку в вашем проекте:

FileUtils.copyFile(File srcFile, File destFile) 
+0

Мне нужно переместить файл, он работает нормально, но он копирует файл из одного места в другое – Gurpaldeep

+0

Вы можете удалить первый файл, используя file.delete() –

Смежные вопросы