所以我正在编写一个使用Simple将数据存储为xml文件的Java应用程序,但是当它存储在网络驱动器上时,与本地硬盘驱动器相比,它的速度非常慢。因此,我希望在将其复制到所需目的地之前将其存储在本地。
是否有一些智能方法可以以独立于系统的方式在Java中查找临时本地文件存储?
E.g。在Windows中返回c:/temp
,在linux中返回/tmp
,以及其他平台(如mac)返回的内容。我可以使用应用程序路径,但问题是Java应用程序也是从网络驱动器运行的。
答案 0 :(得分:12)
尝试:
String path = System.getProperty("java.io.tmpdir");
请参阅:http://java.sun.com/javase/6/docs/api/java/lang/System.html#getProperties%28%29
为了完整起见,在这里添加它,正如他在评论中提到的wic,还有来自Java createTempFile(String prefix, String suffix)
类的方法createTempFile(String prefix, String suffix, File directory)
和File
。
答案 1 :(得分:3)
答案 2 :(得分:2)
本着“让我们解决问题”而不是“让我们回答具体问题”的精神:
阅读Simple时,您使用什么类型的输入流?一定要使用BufferedInputStream(或BufferedReader) - 否则你从流中一次读取一个字节/字符,这在读取网络资源时会非常慢。
不是将文件复制到本地磁盘,而是缓冲输入,你就可以了。
答案 3 :(得分:1)
尝试System.getProperty("java.io.tmpdir");