使用此代码在java中复制中文文件。但目标文件包含问号(?)而不是中文字符。有什么方法在java中实现这个功能..
File source = new File("H:\\work-temp\\file");
File dest = new File("H:\\work-temp\\file2");
try {
FileUtils.copyDirectory(source, dest);
} catch (IOException e) {
e.printStackTrace();
}
答案 0 :(得分:0)
您错过了ex file.txt
和file2.txt
的文件扩展名:
File source = new File("H:\\work-temp\\file.txt");
File dest = new File("H:\\work-temp\\file2.txt");
对于应对使用:
FileChannel inputChannel = null;
FileChannel outputChannel = null;
try{
inputChannel = new FileInputStream(source).getChannel();
outputChannel = new FileOutputStream(dest).getChannel();
outputChannel.transferFrom(inputChannel, 0, inputChannel.size());
} finally {
inputChannel.close();
outputChannel.close();
}
有关详细信息,请转到此link
答案 1 :(得分:0)
首先,在复制文件时,目标应该是文件夹而不是文件...所以请将File dest = new File("H:\\work-temp\\file2");
更改为File dest = new File("H:\\work-temp");
接下来,您应该使用FileUtils.copyFile(source, dest);
代替FileUtils.copyDirectory(source, dest);
答案 2 :(得分:0)
使用JDK 7 Files.copy
方法之一。他们创建了文件的二进制副本。