Java File实例存储在哪里?

时间:2011-08-22 14:57:07

标签: java file

我对Java File类有疑问。当我创建一个File实例时,例如,

File aFile = new File(path);

aFile实例存储在计算机中的哪个位置?或者它存储在JVM中?我的意思是本地磁盘中是否存有临时文件?

如果我有一个InputStream实例,并使用OutputSteam将其写入文件,例如

  File aFile = new File("test.txt");

  OutputStream anOutputStream = new FileOutputStream(aFile);

  byte aBuffer[] = new byte[1024];

  while( ( iLength = anInputStream.read( aBuffer ) ) > 0)
  {
    anOutputStream.write( aBuffer, 0, iLength);
  }

现在文件test.txt存储在哪里?

提前致谢!

3 个答案:

答案 0 :(得分:4)

File对象根本不是真正的文件 - 它实际上只是一个文件名/位置,以及挂钩到文件系统以检查文件是否真的存在的方法等等。没有 content File实例直接关联 - 例如,它不像是一个虚拟的内存文件。实例本身就像任何其他对象一样只是内存中的一个对象。

单独创建File实例会对文件系统 nothing

但是,当您创建FileOutputStream时, 会影响您要写入的任何文件系统。虽然File实例相对无关紧要 - 您可以从以下方面获得相同的效果:

OutputStream anOutputStream = new FileOutputStream("test.txt");

答案 1 :(得分:1)

它将使用路径争论来编写指定它的文件。

在您的情况下,它会将它写在您运行java类的目录中。

如果指定/test/myproject/myfile.txt

它将进入/test/myproject/myfile.txt

答案 2 :(得分:0)

如果您没有提供路径,则它位于当前目录中(即:执行java.exe的目录。)如果您提供完整路径,则会将其存储在那里。

无论如何,它总是存储在文件系统中,而不是存储在JVM内存中。