我有 excel 作为输入到请放心,需要在指定位置复制相同的 excel 文件,该文件是根据当前日期时间生成的,例如文件夹,例如202001201447/特定文件夹名称 我已经编写了创建文件夹的代码。下面是代码
public static void writeRequestAndResponse() {
Date date = new Date();
SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
String currentDateTime = format.format(date);
String folderPath = "E:\OutQA\Output\" + currentDateTime;
File theDir = new File(folderPath);
// if the directory does not exist, create it
if (!theDir.exists()) {
System.out.println("creating directory: " + theDir.getName());
boolean result = false;
try {
theDir.mkdirs();
result = true;
} catch (SecurityException se) {
// handle it
System.out.println(se.getMessage());
}
if (result) {
System.out.println("Folder created");
}
} else if (theDir.exists()) {
System.out.println("Folder exist");
}
}
我在复制 excel 文件时遇到问题。我必须将 excel 文件复制到在特定位置创建的文件夹中。以下是复制代码
public static void testcopy(String srcpath,String destpath)
{
FileInputStream instream = null;
FileOutputStream outstream = null;
try{
File infile =new File(srcpath);
File outfile =new File(destpath);
instream = new FileInputStream(infile);
outstream = new FileOutputStream(outfile);
byte[] buffer = new byte[1024];
int length;
/*copying the contents from input stream to
* output stream using read and write methods
*/
while ((length = instream.read(buffer)) > 0){
outstream.write(buffer, 0, length);
}
//Closing the input/output file streams
instream.close();
outstream.close();
System.out.println("File copied successfully!!");
}catch(IOException ioe){
ioe.printStackTrace();
}
}
看看新的java.nio.file
包。
在那里,您会发现java.nio.file.Files.copy
将源文件的java.nio.file.Path
作为第一个参数,将指向目标位置的Path
作为第二个参数。
可以通过以下方式创建Path
(我将与您的目标位置一起显示它,您必须自己适应您的源位置(:
Path targetLocation = Path.of("E:", "OutQA", "Output", currentDateTime);
File theDir = targetLocation.toFile();
Path targetFile = targetLocation.resolve(targetFilename);
然后,调用复制方法,如下所示:
Files.copy(sourceFile, targetFile);
作为第三个参数,您可以指定选项,例如,当目标文件已经存在时要做什么(java.nio.file.StandardCopyOption
(。此参数是可选的。