Note: These pages are being reviewed.
Files vs. file objects
What exactly is the difference between a filename on disk and a
FileObject
? How do I convert them?
Raw files on disk are generally represented in Java using java.io.File
. These correspond directly to what the operating system thinks of as a file.
Under the Filesystems API, raw files are not usually manipulated
directly. Rather, you should usually be using FileObject
.
Besides the fact that most other APIs that
work with files expect FileObject
, these have a
number of advantages:
-
The filesystem they come from need not correspond to physical files on disk, but could be JAR file entries, or potentially database entries, FTP downloads, etc.
-
The rest of the IDE can interact with them in an object-oriented fashion, including locking and change notification.
However a FileObject
must always really exist on disk (or whatever backing storage is used), unlike File
.
In case translation from one to the other is necessary:
-
To look for a
FileObject
representing aFile
, useFileUtil.toFileObject(File)
. -
To look for a
File
from aFileObject
, you may useFileUtil.toFile(FileObject)
.
Apache Migration Information
The content in this page was kindly donated by Oracle Corp. to the Apache Software Foundation.
This page was exported from http://wiki.netbeans.org/DevFaqFileVsFileObject , that was last modified by NetBeans user Tboudreau on 2010-01-24T05:41:34Z.
NOTE: This document was automatically converted to the AsciiDoc format on 2018-02-07, and needs to be reviewed.