Last active
August 29, 2015 14:08
-
-
Save OlgaKulikova/5e955632e88e24b7af9d to your computer and use it in GitHub Desktop.
Копирование файлов (InputStream, OutputStream)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package copyFiles; | |
// Написать программу для копирования всех файлов из одного каталога в другой. | |
import java.io.File; | |
import java.io.FileInputStream; | |
import java.io.FileOutputStream; | |
import java.util.ArrayList; | |
public class Main { | |
public static void main(String[] args) throws Exception { | |
ArrayList<String> list = new ArrayList<>(); | |
String dirSrc = "D:\\dir\\", dirDest = "D:\\dir\\files\\"; | |
finedFiles(dirSrc, list); | |
// Проходим по списку имен файлов, создаем файлы с такими же именами в нужном каталоге, копируем содержимое в одноименных файлах | |
for (String s : list) { | |
File file = new File(dirDest, s); // Создаем пустые файлы в каталоге назначения и с именами по списку файлов-источников | |
String fileSrc = dirSrc + s; // Полный путь файла-источника | |
String fileDest = dirDest + s; // Полный путь файла назначения | |
copyFiles(fileSrc, fileDest); | |
} | |
} | |
// Находим все файлы в указанном каталоге | |
public static void finedFiles(String dirSrc, ArrayList<String> list) throws Exception { | |
File dir = new File(dirSrc); | |
File[] files = dir.listFiles(); | |
for (int i = 0; i < files.length; i++) { | |
if (files[i] != null && files[i].isFile()) { // Проверяем, ячейка массива файлов не пустая и она является файлом | |
list.add(files[i].getName()); // Добавляем в список имена всех файлов из данного каталога | |
} | |
} | |
} | |
// Копируем содержимое файла из файла-источника в файл назначения | |
public static void copyFiles(String fileSrc, String fileDest) throws Exception { | |
FileInputStream in = new FileInputStream(fileSrc); | |
try { | |
FileOutputStream out = new FileOutputStream(fileDest); | |
try { | |
byte[] buf = new byte[1024]; | |
int r; | |
do { | |
r = in.read(buf, 0, buf.length); | |
if (r > 0) { | |
out.write(buf, 0, r); | |
} | |
} while (r > 0); | |
} finally { | |
out.close(); | |
} | |
} finally { | |
in.close(); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment