有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

避免在客户机-服务器模型中使用java读取部分文件

使用Java,我试图读取从远程系统复制到Linux操作系统中托管的本地服务器的文件内容。有时程序正在读取部分文件(Linux允许其他程序读取正在复制的文件)。我需要弄清楚文件是否被完全复制到我们使用java的本地服务器上。一旦它被复制,我就会开始读取文件,这样就可以避免部分文件读取


共 (1) 个答案

  1. # 1 楼答案

    如果使用FileAlterationListener并添加FileAlterationListenerAdaptor,则可以实现所需的方法,并使用FileAlterationMonito监视文件

    public static void main( String[] args ) throws Exception {
    
        FileAlterationObserver fao = new FileAlterationObserver( dir );
        final long interval = 500;
        FileAlterationMonitor monitor = new FileAlterationMonitor( interval );
        FileAlterationListener listener = new FileAlterationListenerAdaptor() {
    
            @Override
            public void onFileCreate( File file ) {
                try {
                    System.out.println( "File created: " + file.getCanonicalPath() );
                } catch( IOException e ) {
                    e.printStackTrace( System.err );
                }
            }
    
            @Override
            public void onFileDelete( File file ) {
                try {
                    System.out.println( "File removed: " + file.getCanonicalPath() );
                } catch( IOException e ) {
                    e.printStackTrace( System.err );
                }
            }
    
            @Override
            public void onFileChange( File file ) {
                try {
                    System.out.println( file.getName() + " changed: ");
                } catch( Exception e ) {
                    e.printStackTrace();
                } 
            }
        };
        // Add listeners...
        fao.addListener( listener );
        monitor.addObserver( fao );
        monitor.start();
    }