将文件从源复制到目标时保留文件的最后修改日期时间

问题描述 投票:0回答:1

我正在尝试将文件从一个位置复制到另一个位置。从源复制到目标时,目标文件需要当前日期时间。如何使目标文件的日期与源文件的日期相同。

FileInputStream source = new FileInputStream("D:\\test\\test.txt");
OutputStream target = new FileOutputStream("D:\\test.txt");
byte[] buffer = new byte[source.available()];
source.read(buffer);
target.write(buffer);
source.close();
target.close();`
java file java-8 fileinputstream fileoutputstream
1个回答
0
投票

这由java.io.File类提供。您需要先创建它的一个实例,然后将其传递给流:

File input = new File("D:\\test\\test.txt");
File output = new File("D:\\test.txt");
try( FileInputStream source = new FileInputStream(input);
     OutputStream target = new FileOutputStream(output)){
    byte[] buffer = new byte[source.available()];
    source.read(buffer);
    target.write(buffer);
}
long modified = input.lastModified();
output.setLastModified(modified);

BTW:我假设您至少使用Java 7,所以我将代码更改为使用try-with-resources功能。强烈建议使用此方法,因为如果出现异常,它还会处理关闭资源的问题。

© www.soinside.com 2019 - 2024. All rights reserved.