在Java中查找临时文件存储

时间:2010-03-15 12:30:59

标签: java file-io

所以我正在编写一个使用Simple将数据存储为xml文件的Java应用程序,但是当它存储在网络驱动器上时,与本地硬盘驱动器相比,它的速度非常慢。因此,我希望在将其复制到所需目的地之前将其存储在本地。

是否有一些智能方法可以以独立于系统的方式在Java中查找临时本地文件存储?

E.g。在Windows中返回c:/temp,在linux中返回/tmp,以及其他平台(如mac)返回的内容。我可以使用应用程序路径,但问题是Java应用程序也是从网络驱动器运行的。

4 个答案:

答案 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)

System.getProperty("java.io.tmpdir")

SystemRuntime类是那些在需要与系统相关的东西时应首先检查的javadoc类。

答案 2 :(得分:2)

本着“让我们解决问题”而不是“让我们回答具体问题”的精神:

阅读Simple时,您使用什么类型的输入流?一定要使用BufferedInputStream(或BufferedReader) - 否则你从流中一次读取一个字节/字符,这在读取网络资源时会非常慢。

不是将文件复制到本地磁盘,而是缓冲输入,你就可以了。

答案 3 :(得分:1)

尝试System.getProperty("java.io.tmpdir");