将中文文件源复制到java中的目标

时间:2015-12-14 10:41:19

标签: java

使用此代码在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();
}

3 个答案:

答案 0 :(得分:0)

您错过了ex file.txtfile2.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方法之一。他们创建了文件的二进制副本。