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

Pul*_*nda 7 java user-interface text

我想知道如何让java保存一个名为hello.txt桌面的文本文件,而无需编写

"C:\\Users\\Austin\\Desktop"
Run Code Online (Sandbox Code Playgroud)

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

FileWriter fileWriter = new FileWriter(fileName.getText(), true);
Run Code Online (Sandbox Code Playgroud)

..这fileName.getText()就是'你好'.

更新:我认为我将能够使用jfilechooser,所以这会工作吗?

JFileChooser chooser = new JFileChooser();
chooser.setVisible(true);
Run Code Online (Sandbox Code Playgroud)

那会有用吗?如果是这样,我如何使用那里的选择来保存文件?我是一个菜鸟.... :(

And*_*son 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);
    }
}
Run Code Online (Sandbox Code Playgroud)

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

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

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

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


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

  • +1表示"建议JFileChooser".在Mac OS X上,`user.home`属性产生正确的路径."桌面"是一个有效的目录名称,即使它已经[本地化](http://apple.stackexchange.com/a/372​​37/20589). (2认同)