在Java中查找临时文件存储

在Java中查找临时文件存储,java,file-io,Java,File Io,因此,我正在编写一个Java应用程序,用于将数据存储为xml文件,但是当它存储在网络驱动器上时,与存储在本地硬盘驱动器上相比,存储在大文件时速度非常慢。因此,在将其复制到所需目标之前,我希望将其存储在本地 是否有一些聪明的方法以独立于系统的方式在Java中找到临时本地文件存储? 例如,在windows中返回诸如c:/temp、在linux中返回诸如/tmp之类的内容,对于其他平台(如mac)也是如此。我可以使用应用程序路径,但问题是Java应用程序也是从网络驱动器运行的。试试: String p

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

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

例如,在windows中返回诸如
c:/temp
、在linux中返回诸如
/tmp
之类的内容,对于其他平台(如mac)也是如此。我可以使用应用程序路径,但问题是Java应用程序也是从网络驱动器运行的。

试试:

String path = System.getProperty("java.io.tmpdir");
见:

为了完整起见,在这里添加它,正如他在评论中提到的,还有来自Java类的方法和方法


和类是那些当需要与系统相关的东西时,您应该首先检查其Javadoc的类。

try
system.getProperty(“java.io.tmpdir”)

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

当读入Simple时,您使用什么类型的输入流?请确保使用BufferedInputStream(或BufferedReader)-否则,您一次只能从流中读取一个字节/字符,这在读取网络资源时会非常缓慢


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

使用
file.createTempFile(前缀、后缀)
。简单地说,您只需指定xml序列化的起点是什么类,以及写入文件所需的文件对象。因此,我唯一需要知道的是如何找到“临时文件目录”,其他人已经回答了我的问题。如果您愿意,您也可以使用streams,例如,简单地说,您可以使用Serializer.write(myObject,new BufferedOutputStream(new FileOutputStream,新文件(“myFile.xml”))。如果您愿意,这将为您更好地缓冲输出。使用缓冲流-尝试一下,我想您会对它所带来的差异感到惊讶。createTempFile()正是我想要的,因为完整性,所以将其标记为答案
System.getProperty("java.io.tmpdir")