我正在使用Java在Linux上编写一个屏幕捕获程序。我如何使用ImageIO.write()
就像我在Windows上使用它一样:
ImageIO.write(screenshot, "png", new File("c:/output.png"));
答案 0 :(得分:2)
在Linux上没有“C:\”驱动器。相反,您的驱动器安装在安装点(通常为/
)。您可以使用以下任一方法写入您的主目录(相当于Win7的C:\Users\yourusername\
):
ImageIO.write(screenshot, "png", new File("/home/yourusername/output.png"));
ImageIO.write(screenshot, "png", new File("~/output.png"));
或临时文件夹(如果您有权限):
ImageIO.write(screenshot, "png", new File("/tmp/output.png"));
您也可以使用简单的方法写入当前目录:
ImageIO.write(screenshot, "png", new File("output.png"));
要查找驱动器的安装点,请在终端中运行df -h
以查看所有已安装的驱动器。
答案 1 :(得分:1)
如果您正在编写屏幕截图程序,那么您可能希望使用FileChooser来允许用户选择输出文件的位置。
以下是一个如何实现一个的简单示例:
JFileChooser jfc = new JFileChooser();
int returnVal = jfc.showSaveDialog();
if(returnVal == JFileChooser.APPROVE_OPTION) {
File outputFile = jfc.getSelectedFile();
ImageIO.write(screenshot, "png", outputFile);
}
这也有助于使您的代码完全跨平台,而不是将特定于平台的路径硬编码到程序中。