通过io流拷贝后的文件与原文件存放在同一个目录中,这样就要求文件名后面添加 副本 字样,如:原 文件名为 a.txt, 则拷贝出来的文件名为 a副本.txt
时间: 2024-05-12 11:20:56 浏览: 86
以下是Java代码实现:
```
import java.io.*;
public class FileCopy {
public static void main(String[] args) {
String sourceFilePath = "path/to/source/file";
String targetFilePath = "path/to/target/file";
String targetFileName = getTargetFileName(targetFilePath);
try (InputStream in = new FileInputStream(sourceFilePath);
OutputStream out = new FileOutputStream(targetFileName)) {
byte[] buffer = new byte[1024];
int length;
while ((length = in.read(buffer)) > 0) {
out.write(buffer, 0, length);
}
System.out.println("File copied successfully.");
} catch (IOException e) {
e.printStackTrace();
}
}
private static String getTargetFileName(String targetFilePath) {
File targetFile = new File(targetFilePath);
String targetFileName = targetFile.getName();
int index = targetFileName.lastIndexOf(".");
String extension = targetFileName.substring(index);
String nameWithoutExtension = targetFileName.substring(0, index);
String newName = nameWithoutExtension + "副本" + extension;
return targetFile.getParent() + File.separator + newName;
}
}
```
在上面的代码中,我们首先定义了源文件路径和目标文件路径。然后,我们调用了 getTargetFileName 方法来获取目标文件名。该方法将原始文件名拆分为文件名和扩展名,并在文件名后添加“副本”字样。最后,我们使用 InputStream 和 OutputStream 类将源文件中的内容复制到目标文件中。如果复制成功,我们将在控制台上打印一条消息。
阅读全文