我是Rakesh我正在开发一个需要一次又一次地归档具有相同名称的文件的应用程序。这样压缩的文件存储在一个文件夹中。现在让我进入我想要将时间戳作为唯一标识符附加的点,即出现问题的地方。当我给出任何正常的int值或任何类似的东西时它工作正常。它仅在日期格式的情况下抛出异常。我正在附加代码供你使用。请仔细阅读代码,告诉我出错的地方。
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
public class Files
{
public static void main(String args[])throws Exception
{
byte[] buf = new byte[1024];
int len;
int i=1;
DateFormat df = new SimpleDateFormat("hh:mm:ss");
df.setTimeZone(TimeZone.getTimeZone("PST"));
String t=df.format(new Date());
FileInputStream fis=new FileInputStream("e:/Xxx.java");
File f=File.createTempFile("aaaa"+t, ".zip", new File("D:/"));
FileOutputStream fos=new FileOutputStream(f);
ZipOutputStream zip=new ZipOutputStream(fos);
zip.putNextEntry(new ZipEntry( "D:/aaa"+t+".zip"));
while ((len = fis.read(buf)) > 0)
{
zip.write(buf, 0, len);
}
System.out.println("done");
}
}
异常消息:
Exception in thread "main" java.io.IOException: The parameter is incorrect
at java.io.WinNTFileSystem.createFileExclusively(Native Method)
at java.io.File.checkAndCreate(File.java:1704)
at java.io.File.createTempFile(File.java:1792)
at Files.main(Files.java:21)
答案 0 :(得分:1)
根据this page,':'不能用于Windows文件名。将':'更改为'-'s(或完全摆脱它们),你应该没事。
答案 1 :(得分:1)
您需要将格式化日期中的冒号替换为合法字符,例如破折号(“ - ”)。
答案 2 :(得分:0)
DateFormat df = new SimpleDateFormat(“hh-mm-ss”);