如何在不对目录进行硬编码的情况下将某些内容保存到桌面?

时间:2012-04-15 21:49:51

标签: java user-interface text

我想知道如何让java将名为hello.txt的文本文件保存到桌面而不用编写

"C:\\Users\\Austin\\Desktop"

任何帮助都会很棒。所以喜欢:

FileWriter fileWriter = new FileWriter(fileName.getText(), true);

..而fileName.getText()就是'你好'。

更新: 我认为我可以使用jfilechooser,这样可以吗?

JFileChooser chooser = new JFileChooser();
chooser.setVisible(true);
那会有用吗?如果是这样,我如何使用那里的选择来保存文件? 我是一个菜鸟.... :(

3 个答案:

答案 0 :(得分:7)

import java.io.File;

class FindDesktopOnWindows {

    public static void main(String[] args) throws Exception {
        if (System.getProperty("os.name").toLowerCase().indexOf("win")<0) {
            System.err.println("Sorry, Windows only!");
            System.exit(1);
        }
        File desktopDir = new File(System.getProperty("user.home"), "Desktop");
        System.out.println(desktopDir.getPath() + " " + desktopDir.exists());

        java.awt.Desktop.getDesktop().open(desktopDir);
    }
}

我忘记了不同的语言环境。 非常脆弱的代码(即使是针对特定操作系统的代码)。请参阅下面的评论。 OS X / JFileChooser

  

.. (System.getProperty("user.home"), "Desktop")如何运作..

Oracle为这类事情提供了有用的文档。

System.getProperty(String)&amp; new File(String,String)


我会向专家(或用户)放弃,但我不认为OS X直接在..start屏幕上支持任何应用程序图标或文档图标,默认外观,等等。可能更好为最终用户提供JFileChooser指向user.home并要求他们将文档保存到桌面(或他们想要的任何地方)。

答案 1 :(得分:3)

这会指向桌面目录:

javax.swing.filechooser.FileSystemView.getFileSystemView().getHomeDirectory()

答案 2 :(得分:0)

User.home有效,但只需对目录进行硬编码即可。