当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Java Java.io.FileDescriptor用法及代码示例


io.FileDescriptor in Java

java.io.FileDescriptor 用于打开具有特定名称的文件。如果该文件中存在任何内容,它将首先删除所有内容并将 “Beginning of Process” 作为第一行。文件说明符类的实例充当底层 machine-specific 结构的不透明句柄,表示打开的文件、打开的套接字或另一个字节源或接收器。

  • 文件说明符的主要实际用途是创建 FileInputStream 或 FileOutputStream 来包含它。
  • 应用程序不应创建自己的文件说明符。

领域

  • err: 标准错误流的句柄。
  • in:标准输入流的句柄。
  • out: 标准输出流的句柄。

声明:

public final class FileDescriptor
   extends Object

构造函数:

  • FileDescriptor():构造一个FileDescriptor对象

方法:

  • sync(): java.io.File.sync()将所有缓冲区与底层设备同步。当FileDescriptor的所有修改数据都已写入底层设备时,该方法返回。
    Syntax :
public void sync()
Parameters :
-----------
Return : 
void
Exception : 
-> SyncFailedException : This is exception is thrown if there is no guarantee of    
                         synchronization of buffers with the device. 

Java


// Java program explaining the working of sync() method
import java.io.*;
public class NewClass
{
    public static void main(String[] args) throws IOException
    {
        // Initializing a FileDescriptor
        FileDescriptor geek_descriptor = null;
        FileOutputStream geek_out = null;
        // HERE I'm writing "GEEKS" in my file
        byte[] buffer = {71,69,69,75,83};
        try{
            geek_out = new FileOutputStream("FILE.txt");
            // This getFD() method is called before closing the output stream
            geek_descriptor = geek_out.getFD();
            // writes byte to file output stream
            geek_out.write(buffer);
            // USe of sync() : to sync data to the source file
            geek_descriptor.sync();
            System.out.print("\nUse of Sync Successful ");
        }
        catch(Exception except)
        {
            // if in case IO error occurs
            except.printStackTrace();
        }
        finally
        {
            // releases system resources
            if(geek_out!=null)
                geek_out.close();
        }
    }
}

笔记:
您无法看到此代码对代码中提到的“FILE.txt” 文件所做的更改,因为 Online IDE 上不存在此类文件。因此,您需要将代码复制到系统编译器并观察文件的更改
无论文件中存在什么内容,它都会将您的文件同步到设备并覆盖数据。现在文件“FILE.txt”的内容将是

GEEKS

即使不存在这样的文件,它也会自行创建该文件,同步该文件,并写入您提到的内容。
输出:

Use of Sync Successful :) 
  • valid(): java.io.File.valid()检查FileDescriptor对象是否有效。
    Syntax :
public boolean valid()
Parameters :
-----------
Return : 
true : if the FileDescriptor object is valid else, false
Exception : 
-----------

Java


// Java program explaining the working of valid() method
import java.io.*;
public class NewClass
{
    public static void main(String[] args) throws IOException
    {
        // Initializing a FileDescriptor
        FileDescriptor geek_descriptor = null;
        FileInputStream geek_in = null;
        try
        {
            geek_in = new FileInputStream("FILE.txt");
            // get file descriptor
            geek_descriptor = geek_in.getFD();
            boolean check = false;
            // Use of valid() : checking the validity of FileDescriptor
            check = geek_descriptor.valid();
            System.out.print("FileDescriptor is valid : "+check);
        }
        catch(Exception except)
        {
            // if in case IO error occurs
            except.printStackTrace();
        }
        finally
        {
            // releases system resources
            if(geek_in!=null)
                geek_in.close();
        }
    }
}

笔记:
您无法看到此代码对代码中提到的“FILE.txt” 文件所做的更改,因为 Online IDE 上不存在此类文件。因此,您需要将代码复制到系统编译器并观察文件的更改。该方法将检查 FileDescriptor 的有效性。
自从。代码中的 FileDescriptor 有效,因此返回 true

输出:

FileDescriptor is valid : true

概括:

  • java.io.File.sync():将所有缓冲区与底层设备同步。
  • java.io.File.valid()检查FileDescriptor对象是否有效。


相关用法


注:本文由纯净天空筛选整理自佚名大神的英文原创作品 Java.io.FileDescriptor in Java。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。