Java中的Java.io.FileDescriptor

作者: Arvin Chen 分类: Java 来源: Break易站(www.breakyizhan.com)
  •   Java I/O总结

    Java中的Java.io.FileDescriptor

    Java中的Java.io.FileDescriptor

    java.io.FileDescriptor用于打开具有特定名称的文件。如果该文件中有任何内容,它将首先清除所有内容,并将“开始流程”作为第一行。文件描述符类的实例用作底层机器特定结构的不透明句柄,表示打开的文件,打开的套接字或字节的另一个源或接收器。

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

    字段

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

    语法:

    public final class FileDescriptor
       extends Object

    构造函数:

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

    方法:

      • sync():java.io.File.sync()将所有缓冲区与基础设备同步。当FileDescriptor的所有修改数据都已写入底层设备时,该方法返回。
        句法 :

        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 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 excpt)
                {
                    // if in case IO error occurs
                    excpt.printStackTrace();
                }
                finally
                {
                    // releases system resources
                    if(geek_out!=null)
                        geek_out.close();
                }
            }
        }
        

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

        GEEKS

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

        Use of Sync Successful :)
      • valid():java.io.File.valid()检查FileDescriptor对象是否有效。
        句法 :

        public boolean valid()
        Parameters :
        -----------
        Return : 
        true : if the FileDescriptor object is valid else, false
        Exception : 
        -----------
        // Java program explianing 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 excpt)
                {
                    // if in case IO error occurs
                    excpt.printStackTrace();
                }
                finally
                {
                    // releases system resources
                    if(geek_in!=null)
                        geek_in.close();
                }
            }
        }
        

        注意:
        您无法看到此代码对代码中提到的“FILE.txt”文件所做的更改,因为Online IDE上不存在此文件。所以,您需要将代码复制到您的SYSTEM编译器并观察对您的文件的更改。这种方法会改变我们的FileDescriptor的有效性。
        以来。我们的代码中的FileDescriptor是有效的,所以返回true

        输出:

        FileDescriptor is valid : true

    总结:

      • java.io.File.sync():将所有缓冲区与基础设备同步。
      • java.io.File.valid()检查FileDescriptor对象是否有效。
  •   Java I/O总结
  •   本文标题:Java中的Java.io.FileDescriptor - Break易站
    转载请保留页面地址:https://www.breakyizhan.com/java/4303.html
      微信返利机器人
      免费:淘宝,京东,拼多多优惠券
      腾讯,爱奇艺,优酷的VIP视频免费解析,免费看
      即刻扫描二维码,添加微信机器人!

    发表笔记

    电子邮件地址不会被公开。 必填项已用*标注