【Java问题】有没有大佬给个代码和思路!

发布网友 发布时间:2022-04-23 17:42

我来回答

2个回答

热心网友 时间:2022-05-07 18:32

因为题目要求拷贝Example1-10.java文件从Java_Source到Java目录下,可以把数字拼到文件名的字符串中,从而把Example1-10.java文件,一个一个复制到目标目录下.

完整的Java程序如下

import java.io.File;

import java.IoException;

public class test{

 pubilc static void main(String args[])throws IoException{

  for(int i=1;i<=10;i++){

   String S1 = "G:/Java_Source/Example"+i+".java";

   String S2 = "G:/Java/Example"+i+".java";

   File Source = new File(S1);

   File dest = new File(S2);

   java.nio.file.Files.copy(Source.toPath(),dest.toPath());

  }

  System.out.printIn("File copy");

 }

}

热心网友 时间:2022-05-07 19:50

public static void main(String[] args) throws IOException {
String S1 = "G:/Java_Source/Example1.java";
String S2 = "G:/Java_Source/Example2.java";

// 注意:
// step.1
// F:\Java_Source文件夹下面是不是只有你说的Example1.java 到 Example10.java 10个java文件。
// 如果只有这10个文件,我理解的就是把F:\Java_Source下所有的文件copy到F:\Java文件夹下
// 代码如下
copyDir("F:\\Java_Source", "F:\\Java");
System.out.println("F:\\Java_Source 下所有文件copy完成。");

// ----------另外一种方案-----------

// step.2 如F:\Java_Source文件夹下面有很多文件夹还有其他的文件,要在里面挑选Example1.java 到 Example10.java 10个java文件
// 代码如下
File source = new File("F:\\Java_Source");
File[] files = source.listFiles();
for (int i = 0; i < files.length; i++) {
System.out.println("当前处理文件名称:fileName=" + files[i].getName());
// 这个文件名可以扩展
String fileName = "Example" + i + ".java";
// 如果符合Example1 ~ Example10 文件命名
if (fileName.equals(files[i].getName())) {
System.out.println("当前处理文件名称:fileName=" + files[i].getName() + "符合赋值文件要求。");
copyFile("F:\\Java_Source" + files[i].separator + files[i].getName(), "F:\\Java" + files[i].separator + files[i].getName());
}
}

}

public static void copyDir(String sourcePath, String newPath) throws IOException {
// 获取文件夹File对象
File file = new File(sourcePath);
// 获取文件夹下所有内容的名称
String[] filePath = file.list();
// 判断要目标文件夹是否存在不存在则创建
if (!(new File(newPath)).exists()) {
(new File(newPath)).mkdir();
}
// 循环遍历
for (int i = 0; i < filePath.length; i++) {
//判断是不是文件夹,是的话执行递归。file.separator 分隔符,如“/”
if ((new File(sourcePath + file.separator + filePath[i])).isDirectory()) {
copyDir(sourcePath + file.separator + filePath[i], newPath + file.separator + filePath[i]);
}
//判断是不是文件,是的话旧的文件拷至新的文件夹下
if (new File(sourcePath + file.separator + filePath[i]).isFile()) {
copyFile(sourcePath + file.separator + filePath[i], newPath + file.separator + filePath[i]);
}
}
}

public static void copyFile(String oldPath, String newPath) throws IOException {
// 获取旧的文件File对象
File oldFile = new File(oldPath);
// 获取新的文件File对象并生成文件
File file = new File(newPath);
FileInputStream in = new FileInputStream(oldFile);
FileOutputStream out = new FileOutputStream(file);
byte[] buffer = new byte[2097152];
int readByte = 0;
//读取旧文件的流写入新文件里
while ((readByte = in.read(buffer)) != -1) {
out.write(buffer, 0, readByte);
}
in.close();
out.close();
}

希望采纳。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com