Java File 实例存储在哪里?

NAR*_*ARU 1 java file

我有一个关于 Java File 类的问题。例如,当我创建一个 File 实例时,

File aFile = new File(path);
Run Code Online (Sandbox Code Playgroud)

实例 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);
  }
Run Code Online (Sandbox Code Playgroud)

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

提前致谢!

Jon*_*eet 5

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

单独创建一个File实例对文件系统没有任何影响

FileOutputStream但是,当您创建. 时,这确实会影响您正在写入的任何文件系统。File尽管该实例相对无关 - 您会从以下方面获得相同的效果:

OutputStream anOutputStream = new FileOutputStream("test.txt");
Run Code Online (Sandbox Code Playgroud)