ファイルとその内容をコピーするためのコードを以下に作った。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
ファイルは空です。 whileループ
bw.write(line);
への一部は
System.out.println(line);
作品を動作しません。
を試すことができます。ファイルのflush()またはclose()がなければ、バッファされたデータはディスクに書き込まれていません(これが書き込みバッファの目的です) –