目前,我有一个Java应用程序需要从目录复制文件并将其放置在桌面上。我有这个方法从Windows,Mac和Linux上的位置检索文件
public static void copyFileUsingFileStreams(File source, File dest) throws IOException {
InputStream input = null;
OutputStream output = null;
try {
input = new FileInputStream(source);
output = new FileOutputStream(dest);
byte[] buf = new byte[1024];
int bytesRead;
while ((bytesRead = input.read(buf)) > 0) { output.write(buf, 0, bytesRead); }
}
finally {
input.close();
output.close();
}
}
我把它称为下面。
copyFileUsingFileStreams(new File("C:/Program Files (x86)/MyProgram/App_Data/Session.db"), new File(System.getProperty("user.home") + "/Desktop/Session.db"));
这在Windows上完美运行。但是,我希望能够在Mac和Linux机器上完成同样的操作(位置为/opt/myprogram/App_Data/Session.db)。我如何评估运行的机器是Windows还是Mac/Linux,以及我如何重组我的代码?