簡體   English   中英

如何使用 Apache Commons IO 使用自定義名稱復制 java 中的文件?

[英]How do you copy a file in java using Apache Commons IO with a custom name?

我只是在玩 java 和 Mahout,在編碼時遇到了這個錯誤。

我正在嘗試使用 apache 復制 java 中的文件,但它顯示:

  Exception in thread "main" java.io.IOException: Destination 'algorithmResDump\item2019\09\20:22' directory cannot be created
at org.apache.commons.io.FileUtils.copyFile(FileUtils.java:1070)
at org.apache.commons.io.FileUtils.copyFile(FileUtils.java:1028)
at com.predictionmarketing.itemrecommend.copyFile.copyFile(copyFile.java:14)
at com.predictionmarketing.itemrecommend.UserBasedRecommender.main(UserBasedRecommender.java:93)'

部分代碼片段:

package com.predictionmarketing.itemrecommend;

import org.apache.commons.io.*;

import java.io.File;
import java.io.IOException;

public class copyFile {
    public static void copyFile(String source1, String dest1, String filename) throws IOException {

        File source = new File (source1);
        File dest = new File (dest1, filename);

        FileUtils.copyFile(source, dest);
    }

}

- output 文件的命名

Date dNow = new Date();
SimpleDateFormat ftRaw = new SimpleDateFormat ("yyyy/MM/dd:HH//mm:ss.SSS");
String ft1 = ftRaw.format(dNow);
copyFile.copyFile("data/send.data", "algorithmResDump/", "item" + ft1 + ".data");

我對 Apache 如何認為它是一個目錄而不是一個文件感到困惑,它甚至說“FileUtils.copyFile”有點誤導。 任何幫助,將不勝感激!

您的 SimpleDateFormatter 中有“/”,由於這個 apache 文件實用程序將嘗試為年、月、日:小時等創建目錄。

但問題是你有':'日期和小時,fileUtils 將嘗試創建一個名為“22:20”的目錄,但在 windows 中,':'是一個非法字符,所以 fileutils 將通過拋出無法創建目錄而失敗。

如果您更喜歡使用時間戳,而不是使用“/”(或)“:”,我建議在其中沒有任何非法字符之前使用“YYYY-mm-dd_HH-MM-SS”之類的格式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM