
- Java.io - Home
- Java.io - BufferedInputStream
- Java.io - BufferedOutputStream
- Java.io - BufferedReader
- Java.io - BufferedWriter
- Java.io - ByteArrayInputStream
- Java.io - ByteArrayOutputStream
- Java.io - CharArrayReader
- Java.io - CharArrayWriter
- Java.io - Console
- Java.io - DataInputStream
- Java.io - DataOutputStream
- Java.io - File
- Java.io - FileDescriptor
- Java.io - FileInputStream
- Java.io - FileOutputStream
- Java.io - FilePermission
- Java.io - FileReader
- Java.io - FileWriter
- Java.io - FilterInputStream
- Java.io - FilterOutputStream
- Java.io - FilterReader
- Java.io - FilterWriter
- Java.io - InputStream
- Java.io - InputStreamReader
- Java.io - LineNumberInputStream
- Java.io - LineNumberReader
- Java.io - ObjectInputStream
- Java.io - ObjectInputStream.GetField
- Java.io - ObjectOutputStream
- io - ObjectOutputStream.PutField
- Java.io - ObjectStreamClass
- Java.io - ObjectStreamField
- Java.io - OutputStream
- Java.io - OutputStreamWriter
- Java.io - PipedInputStream
- Java.io - PipedOutputStream
- Java.io - PipedReader
- Java.io - PipedWriter
- Java.io - PrintStream
- Java.io - PrintWriter
- Java.io - PushbackInputStream
- Java.io - PushbackReader
- Java.io - RandomAccessFile
- Java.io - Reader
- Java.io - SequenceInputStream
- Java.io - SerializablePermission
- Java.io - StreamTokenizer
- Java.io - StringBufferInputStream
- Java.io - StringReader
- Java.io - StringWriter
- Java.io - Writer
- Java.io package Useful Resources
- Java.io - Discussion
Java - FileDescriptor Class
Introduction
The Java FileDescriptor class instances serve as an opaque handle to the underlying machine-specific structure representing an open file, an open socket, or another source or sink of bytes. Following are the important points about FileDescriptor −
The main practical use for a file descriptor is to create a FileInputStream or FileOutputStream to contain it.
Applications should not create their own file descriptors.
Class declaration
Following is the declaration for Java.io.FileDescriptor class −
public final class FileDescriptor extends Object
Field
Following are the fields for Java.io.FileDescriptor class −
static FileDescriptor err − This is the handle to the standard error stream.
static FileDescriptor in − This is the handle to the standard input stream.
static FileDescriptor out − This is the handle to the standard output stream.
Class constructors
Sr.No. | Constructor & Description |
---|---|
1 |
FileDescriptor() This method constructs an (invalid) FileDescriptor object. |
Class methods
Sr.No. | Method & Description |
---|---|
1 |
void sync()
This method force all system buffers to synchronize with the underlying device. |
2 |
boolean valid()
This method tests if this file descriptor object is valid. |
Methods inherited
This class inherits methods from the following classes −
- Java.io.Object
Example - Using sync() to Ensure Data is Written to Disk
The following example shows the usage of Java FileDescriptor sync() method.
FileDescriptorDemo.java
package com.tutorialspoint; import java.io.File; import java.io.FileDescriptor; import java.io.FileOutputStream; import java.io.IOException; public class FileDescriptorDemo { public static void main(String[] args) { File file = new File("sync_example.txt"); try (FileOutputStream fos = new FileOutputStream(file)) { FileDescriptor fd = fos.getFD(); // Get file descriptor // Write data to the file fos.write("Hello, this is a test for sync method.".getBytes()); // Force data to be written to disk fd.sync(); System.out.println("Data successfully written and synced to disk."); } catch (IOException e) { e.printStackTrace(); } } }
Output
Let us compile and run the above program, this will produce the following result−
Data successfully written and synced to disk.
Explanation
A FileOutputStream is created for "sync_example.txt".
The getFD() method retrieves the file descriptor (FileDescriptor object).
Data is written to the file using fos.write().
The sync() method is called on the file descriptor, ensuring that the data is immediately written to disk.
The file is automatically closed using try-with-resources.
Example - Checking if a FileDescriptor is Valid
The following example shows the usage of Java FileDescriptor valid() method.
FileDescriptorDemo.java
package com.tutorialspoint; import java.io.File; import java.io.FileDescriptor; import java.io.FileOutputStream; import java.io.IOException; public class FileDescriptorDemo { public static void main(String[] args) { try (FileOutputStream fos = new FileOutputStream(new File("valid_example.txt"))) { FileDescriptor fd = fos.getFD(); // Get the file descriptor // Check if the file descriptor is valid System.out.println("Is file descriptor valid? " + fd.valid()); // Expected: true } catch (IOException e) { e.printStackTrace(); } } }
Output
Let us compile and run the above program, this will produce the following result−
Is file descriptor valid? true
Explanation
A FileOutputStream is created for "valid_example.txt".
The file's descriptor (FileDescriptor) is retrieved using getFD().
The valid() method checks if the file descriptor is valid.
Since the file is open, valid() returns true.