java 动态获取当前系统桌面位置

来源:互联网 发布:apache cxf 2.5.9 编辑:程序博客网 时间:2024/06/06 05:28

博主在前段时间进行POI导出数据的时候困惑于文件的输出位置,因为没有用Excelutil包和response,所以一开始数据的存储位置直接写死,但是这样很不好,但是进行客户选择下载路径这个想法弄了许久又没实现,无奈,找到一个折中的方法.那就是动态获取当前用户的桌面路径,将文件的输出位置写为用户桌面.不多说了直接上代码.

File desktopDir = FileSystemView.getFileSystemView()                    .getHomeDirectory();String desktopPath = desktopDir.getAbsolutePath();//博主桌面路径没有改过,用户主机名也没有改过,所以获取到的desktopPath 为C:\users\Administrator\decstop(此段手写可能拼写有误~),输出出来的desktopPath 但是new FileOutputStream(fileName);时要把"\"替换为"//",所以注意:替换代码为:String filePath = desktopPath.replaceAll("\\\\","//");因为"\"会被转译具体转译解释如下:eplaceAll()方法实际是采用正则表达式的规则去匹配的。在regex中"\\"表示一个"\",在java中一个"\"也要用"\\"表示。这样,前一个"\\"代表regex中的"\",后一个"\\"代表java中的"\",所以字符串转义一次,正则转义一次,那么一个斜扛要写4个,要想使用replaceAll()方法将字符串中的反斜杠(\)替换成(\\),则需要这样写:replaceAll("\\\\","\\\\\\\\")

这里写图片描述
简单的来说:Java中的replaceAll()方法要用4个反斜杠,表示一个反斜杠.