Я сделал код ниже для копирования файла и его содержимого.BufferedReader не копирует файлы
static void copyFile(File inFile, String destination) {
if (inFile.isFile()) {
try {
String str = destination + "//" + inFile.getName();
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(inFile),"UTF-8"));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File(str), false), "UTF-8"));
String line;
try {
while((line = br.readLine()) != null) {
bw.write(line);
System.out.println(line);
}
} catch (IOException ex) {
Logger.getLogger(JavaApplication10.class.getName()).log(Level.SEVERE, null, ex);
}
} catch (FileNotFoundException ex) {
Logger.getLogger(JavaApplication10.class.getName()).log(Level.SEVERE, null, ex);
} catch (UnsupportedEncodingException ex) {
Logger.getLogger(JavaApplication10.class.getName()).log(Level.SEVERE, null, ex);
}
} else if(inFile.isDirectory()) {
String str = destination + "\\" + inFile.getName();
File newDir = new File(str);
newDir.mkdir();
for(File file : inFile.listFiles())
copyFile(file, newDir.getAbsolutePath());
}
}
Код creaes файлы в месте назначения, как это следует, но .txt
файлы пусты. Часть в то время цикла
bw.write(line);
не работает
System.out.println(line);
работы.
когда вы делаете ReadLine() вы выбрасываете новые линии. Без флеш() или close() файла любые буферизированные данные не были записаны на диск (это цель буфера записи) –