gpt4 book ai didi

java - 使用 JFileChooser 制作备份副本

转载 作者:行者123 更新时间:2023-12-02 06:36:33 26 4
gpt4 key购买 nike

我需要在使用 JfileChooser 时制作所选文件的备份副本,以便用户可以指定/或选择备份文件的名称。我必须为此过程使用 DataInputStream 和 DataOutputStream 以及 readByte 和 writeByte 方法。

这是我到目前为止所拥有的:

public class BasicFile {        

public BasicFile() throws FileNotFoundException, IOException{
JFileChooser chooser = new JFileChooser();
chooser.showOpenDialog(null);
File f = chooser.getSelectedFile();
if (f.isFile())
{
DataInputStream dis = new DataInputStream(new FileInputStream(f));
}
}
}

最佳答案

两个流的解决方案:

        DataInputStream dis = new DataInputStream(new FileInputStream(f));
ByteArrayOutputStream buffer = new ByteArrayOutputStream();

int nRead;
byte[] data = new byte[dis.available()];

while ((nRead = dis.read(data, 0, data.length)) != -1) {
buffer.write(data, 0, nRead);
}

buffer.flush();

ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dataOutStream = new DataOutputStream(baos);
dataOutStream.write(data);

OutputStream outputStream = new FileOutputStream("newFilePath");
baos.writeTo(outputStream);
baos.close(); //Lets close some streams
dataOutStream.close();
outputStream.close();
buffer.close();
dis.close();

也许有一个更短的解决方案,但是上面的代码可以工作。

如果没有要求,它只是带有 Files.copy 方法的一行。

Files.copy(f.toPath(),new File("newFilePath").toPath(), StandardCopyOption.REPLACE_EXISTING);

关于java - 使用 JFileChooser 制作备份副本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19582761/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com