IFSJavaFile 类

IBM Toolbox for Java™ 类表示 IBM i 集成文件系统中的文件,并扩展了 java.io.File 类。 IFSJavaFile 允许您为访问集成文件系统的 java.io.File 接口编写文件。

IFSJavaFile 使可移植接口与 java.io.File 兼容,并且仅使用 java.io.File 使用的错误和异常。 IFSJavaFile 使用 java.io.File中的安全管理器功能部件,但与 java.io.File不同, IFSJavaFile 连续使用安全功能部件。

您可以将 IFSJavaFile 与 IFSFileInputStream 和 IFSFileOutputStream 结合使用。 它不支持 java.io.FileInputStream 和 java.io.FileOutputStream。

IFSJavaFile 基于 IFSFile; 但是,它的接口比 IFSFile 更像 java.io.File 。 IFSFile 是 IFSJavaFile 类的替代方法。

您可以使用 list() 方法或 listFiles() 方法获取目录中的文件列表:

  • listFiles()方法的性能更好,因为它能在首次调用时检索和缓存每个文件的信息。 之后,将从高速缓存中检索有关每个文件的信息。
  • list () 方法在单独的请求中检索有关每个文件的信息,使其速度更慢,对服务器资源的要求也更高。
注意: 使用 listFiles() 意味着缓存中的信息最终会过时,因此您可能需要刷新数据。

示例: 使用 IFSJavaFile

注: 请阅读 代码示例免责声明 以获取重要的法律信息。

以下示例显示如何使用 IFSJavaFile 类:

     // Work with /Dir/File.txt on the system flash.
     AS400 as400 = new AS400("flash");
     IFSJavaFile file = new IFSJavaFile(as400, "/Dir/File.txt");

     // Determine the parent directory of the file.
     String directory = file.getParent();

     // Determine the name of the file.
     String name = file.getName();

     // Determine the file size.
     long length = file.length();

     // Determine when the file was last modified.
     Date date = new Date(file.lastModified());

     // Delete the file.
     if (file.delete() == false)
     {
       // Display the error code.
       System.err.println("Unable to delete file.");
     }

     try
     {
       IFSFileOutputStream os =
          new IFSFileOutputStream(file.getSystem(), file, IFSFileOutputStream.SHARE_ALL, false);
       byte[] data = new byte[256];
       int i = 0;
       for (; i < data.length; i++)
       {
         data[i] = (byte) i;
         os.write(data[i]);
       }
       os.close();
     }
     catch (Exception e)
     {
       System.err.println ("Exception: " + e.getMessage());
     }