使用Java,我试图读取从远程系统复制到Linux操作系统上的本地服务器的文件的内容。有时程序正在读取部分文件(Linux允许其他程序读取正在复制的文件)。我需要知道文件是否使用java完全复制到我们的本地服务器中。一旦它被复制,然后我将开始读取文件,以便可以避免部分文件读取。
发布于 2017-03-24 20:23:50
如果使用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();
}https://stackoverflow.com/questions/42999331
复制相似问题