锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
import java.awt.Dimension;
import java.awt.event.WindowEvent;
import java.awt.event.WindowAdapter;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
/*******************************************************************************
聽*
聽* 鍏抽棴鍓嶆彁閱?br />聽*
聽* Author: NeedJava
聽*
聽* Modofied: 2005.04.02
聽*
聽******************************************************************************/
class AlarmBeforeClosed extends JFrame
{
聽 public AlarmBeforeClosed( String title )
聽 {
聽聽聽 //璁劇疆紼嬪簭鏍囬鏍?br />聽聽聽 this.setTitle( title );
聽聽聽 //涓嶇粰鏈澶у寲
聽聽聽 this.setResizable( false );
聽聽聽 //璁劇疆紼嬪簭鐣岄潰澶у皬
聽聽聽 this.setSize( new Dimension( 500, 400 ) );
聽聽聽 //灝嗙▼搴忓眳涓斁緗紙鏂規(guī)硶1錛?br />聽聽聽 Dimension paneSize=this.getSize();
聽聽聽 Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize();
聽聽聽 this.setLocation( ( screenSize.width-paneSize.width )/2, ( screenSize.height-paneSize.height )/2 );
聽聽聽 //灝嗙▼搴忓眳涓斁緗紙鏂規(guī)硶2錛?br />聽聽聽 //this.setLocationRelativeTo( null );
聽聽聽 //璁劇疆紼嬪簭鍏抽棴鐨勭被鍨嬶紝闃叉鍏抽棴
聽聽聽 this.setDefaultCloseOperation( JFrame.DO_NOTHING_ON_CLOSE );
聽聽聽 //璁劇疆鍏抽棴紼嬪簭
聽聽聽 this.addWindowListener( new WindowAdapter()
聽聽聽 {
聽聽聽聽聽 public void windowClosing( WindowEvent e )
聽聽聽聽聽 {
聽聽聽聽聽聽聽 closeApplication();
聽聽聽聽聽 }
聽聽聽 } );
聽 }
聽 /*****************************************************************************
聽聽 *
聽聽 * 鍏抽棴紼嬪簭
聽聽 *
聽聽 ****************************************************************************/
聽 private void closeApplication()
聽 {
聽聽聽 Toolkit.getDefaultToolkit().beep();
聽聽聽 int answer=JOptionPane.showConfirmDialog( AlarmBeforeClosed.this,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 "鎮(zhèn)ㄧ湡鐨勮閫鍑烘緋葷粺錛?,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 "閫鍑虹▼搴?,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 JOptionPane.YES_NO_OPTION,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 JOptionPane.QUESTION_MESSAGE,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 null );
聽聽聽 if( answer==JOptionPane.YES_OPTION )聽 //閫夋嫨鈥滄槸鈥?br />聽聽聽聽聽 {
聽聽聽聽聽聽聽 System.exit( 0 );
聽聽聽聽聽 }
聽聽聽 else if( answer==JOptionPane.NO_OPTION )聽 //閫夋嫨鈥滃惁鈥?br />聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽 return;
聽聽聽聽聽聽聽聽聽聽 }
聽 }
聽 /*****************************************************************************
聽聽 *
聽聽 * 鍏ュ彛涓葷▼搴?br />聽聽 *
聽聽 ****************************************************************************/
聽 public static void main( String[] args )
聽 {
聽聽聽 new AlarmBeforeClosed( "鍏抽棴鍓嶆彁閱? ).setVisible( true );
聽 }
}
聽聽聽 long temp=0L;
聽聽聽 long begin=0L;
聽聽聽 ////////////////////////////////////////////////////////////////////////////
聽聽聽 //
聽聽聽 // dividend/1024絳夋晥浜巇ividend>>10
聽聽聽 //
聽聽聽 ////////////////////////////////////////////////////////////////////////////
聽聽聽 begin=System.currentTimeMillis();
聽聽聽 for( int i=0; i<10000000; i++ )
聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽 temp=dividend/1024;
聽聽聽聽聽聽 }
聽聽聽 System.out.println( temp+" 鎬誨叡鑰楁椂錛?+( System.currentTimeMillis()-begin )+"姣" );
聽聽聽 begin=System.currentTimeMillis();
聽聽聽 for( int i=0; i<10000000; i++ )
聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽 temp=dividend>>10;
聽聽聽聽聽聽 }
聽聽聽 System.out.println( temp+" 鎬誨叡鑰楁椂錛?+( System.currentTimeMillis()-begin )+"姣\r\n" );
聽聽聽 ////////////////////////////////////////////////////////////////////////////
聽聽聽 //
聽聽聽 // dividend*1024絳夋晥浜巇ividend<<10
聽聽聽 //
聽聽聽 ////////////////////////////////////////////////////////////////////////////
聽聽聽 begin=System.currentTimeMillis();
聽聽聽 for( int i=0; i<10000000; i++ )
聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽 temp=dividend*1024;
聽聽聽聽聽聽 }
聽聽聽 System.out.println( temp+" 鎬誨叡鑰楁椂錛?+( System.currentTimeMillis()-begin )+"姣" );
聽聽聽 begin=System.currentTimeMillis();
聽聽聽 for( int i=0; i<10000000; i++ )
聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽 temp=dividend<<10;
聽聽聽聽聽聽 }
聽聽聽 System.out.println( temp+" 鎬誨叡鑰楁椂錛?+( System.currentTimeMillis()-begin )+"姣\r\n" );
聽聽聽 ////////////////////////////////////////////////////////////////////////////
聽聽聽 //
聽聽聽 // dividend%1024絳夋晥浜巇ividend-( dividend>>10<<10 )
聽聽聽 //
聽聽聽 ////////////////////////////////////////////////////////////////////////////
聽聽聽 begin=System.currentTimeMillis();
聽聽聽 for( int i=0; i<10000000; i++ )
聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽 temp=dividend%1024;
聽聽聽聽聽聽 }
聽聽聽 System.out.println( temp+" 鎬誨叡鑰楁椂錛?+( System.currentTimeMillis()-begin )+"姣" );
聽聽聽 begin=System.currentTimeMillis();
聽聽聽 for( int i=0; i<10000000; i++ )
聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽 temp=dividend-( dividend>>10<<10 );
聽聽聽聽聽聽 }
聽聽聽 System.out.println( temp+" 鎬誨叡鑰楁椂錛?+( System.currentTimeMillis()-begin )+"姣\r\n" );
聽 }
}
聽聽聽 long start=0L;
聽聽聽 String temp=null;
聽聽聽 /*/
聽聽聽 start=System.currentTimeMillis();
聽聽聽 temp=null;
聽聽聽 for( int i=0; i<times; i++ )
聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽 temp=times+"";
聽聽聽聽聽聽 }
聽聽聽 System.out.println( temp+"銆"+( System.currentTimeMillis()-start ) );
聽聽聽 /*/
聽聽聽 start=System.currentTimeMillis();
聽聽聽 temp=null;
聽聽聽 for( int i=0; i<times; i++ )
聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽 temp=Long.toString( times );
聽聽聽聽聽聽 }
聽聽聽 System.out.println( temp+"銆"+( System.currentTimeMillis()-start ) );
聽聽聽 //*/
聽 }
}
/*******************************************************************************
聽*
聽*
聽* Author: NeedJava
聽*
聽* Modified: 2007.08.26
聽*
聽******************************************************************************/
public final class ReadFaster
{
聽 /*****************************************************************************
聽聽 *
聽聽 * 鏋勯犲嚱鏁幫紝榛樿浣跨敤褰撳墠璺緞
聽聽 *
聽聽 ****************************************************************************/
聽 public ReadFaster()
聽 {
聽聽聽 this( "." );
聽 }
聽 public ReadFaster( String fileName )
聽 {
聽聽聽 this.listPictures( null, fileName );
聽 }
聽 /*****************************************************************************
聽聽 *
聽聽 * 鍒楀嚭褰撳墠鐩綍涓嬬殑鏂囦歡鍒楄〃錛屽寘鎷枃浠跺拰鏂囦歡澶?br />聽聽 *
聽聽 ****************************************************************************/
聽 private final void listPictures( File path, String fileName )
聽 {
聽聽聽 File file=new File( path, fileName );
聽聽聽 if( file.isDirectory() )
聽聽聽聽聽 {
聽聽聽聽聽聽聽 //寰楀埌褰撳墠鐩綍涓嬬殑鏂囦歡鍒楄〃錛屽寘鎷枃浠跺拰鏂囦歡澶?br />聽聽聽聽聽聽聽 String[] children=file.list();
聽聽聽聽聽聽聽 //濡傛灉瀛愰泦涓虹┖錛屽氨鏀懼純鍚庨潰鐨勬搷浣?br />聽聽聽聽聽聽聽 if( children==null )
聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽 return;
聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 //鎺掑簭
聽聽聽聽聽聽聽 //java.util.Arrays.sort( children );
聽聽聽聽聽聽聽 //濡傛灉瀛愰泦涓嶄負(fù)絀猴紝鍒欐樉紺?br />聽聽聽聽聽聽聽 for( int i=0; i<children.length; i++ )
聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽 listPictures( file, children[i] );
聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽 }
聽聽聽 else if( file.isFile() )
聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽 if( isPictureSuffix( file.getPath() ) )
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 readPicture( file );
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽 }
聽 }
聽 /*****************************************************************************
聽聽 *
聽聽 * 鏍規(guī)嵁鍚庣紑鍚嶅垽鏂槸鍚︽槸鏈夋晥鐨勫浘鐗囷紝騫朵笖榪斿洖灝忓啓鐨勫悗緙鍚?br />聽聽 *
聽聽 ****************************************************************************/
聽 private final boolean isPictureSuffix( String fileName )
聽 {
聽聽聽 if( fileName==null )
聽聽聽聽聽 {
聽聽聽聽聽聽聽 return false;
聽聽聽聽聽 }
聽聽聽 int length=fileName.length();
聽聽聽 //鍙兘瀛樺湪鈥?jpg鈥濊繖鏍風(fēng)殑鏂囦歡錛屽嵆4涓瓧絎?br />聽聽聽 if( length>=4 )
聽聽聽聽聽 {
聽聽聽聽聽聽聽 char c=fileName.charAt( length-4 );
聽聽聽聽聽聽聽 if( c=='.' )
聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽 c=fileName.charAt( length-3 );
聽聽聽聽聽聽聽聽聽聽聽 if( c=='j'||c=='J' )
聽聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 c=fileName.charAt( length-2 );
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 if( c=='p'||c=='P' )
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 c=fileName.charAt( length-1 );
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 if( c=='g'||c=='G' )
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 return true;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 else if( c=='e'||c=='E' )
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 return true;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽 else if( c=='t'||c=='T' )
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 c=fileName.charAt( length-2 );
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 if( c=='i'||c=='I' )
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 c=fileName.charAt( length-1 );
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 if( c=='f'||c=='F' )
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 return true;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 else if( c=='j'||c=='J' )
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 c=fileName.charAt( length-3 );
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 if( c=='p'||c=='P' )
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 c=fileName.charAt( length-2 );
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 if( c=='e'||c=='E' )
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 c=fileName.charAt( length-1 );
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 if( c=='g'||c=='G' )
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 return true;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 else if( c=='f'||c=='F' )
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 c=fileName.charAt( length-2 );
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 if( c=='i'||c=='I' )
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 c=fileName.charAt( length-1 );
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 if( c=='f'||c=='F' )
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 return true;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽 else if( c=='t'||c=='T' )
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 c=fileName.charAt( length-3 );
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 if( c=='i'||c=='I' )
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 c=fileName.charAt( length-2 );
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 if( c=='f'||c=='F' )
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 c=fileName.charAt( length-1 );
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 if( c=='f'||c=='F' )
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 return true;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽 }
聽聽聽 return false;
聽 }
聽 /*****************************************************************************
聽聽 *
聽聽 * 澶т簬10240鐨勶紝姣忔璇?024鎴?048
聽聽 *
聽聽 * 灝忎簬10240鐨勶紝璇?0240涓嬈″嵆鍙?br />聽聽 *
聽聽 ****************************************************************************/
聽 private final String readPicture( File file )
聽 {
聽聽聽 try{ FileInputStream fis=new FileInputStream( file );
聽聽聽聽聽聽聽聽 //灝忎簬10K鐨勫拷鐣?br />聽聽聽聽聽聽聽聽 if( fis.available()<10240 )
聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽 return "";
聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽 long num=0L;
聽聽聽聽聽聽聽聽 //Buffered鐨勯粯璁ゆ湁2048鍜?192
聽聽聽聽聽聽聽聽 //*/ No.1
聽聽聽聽聽聽聽聽 byte[] buffer=new byte[10240];
聽聽聽聽聽聽聽聽 if( fis.read( buffer )==10240 )
聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽 for( int i=0; i<10240; i++ )
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 num++;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽 //*/
聽聽聽聽聽聽聽聽 /*/ No.3
聽聽聽聽聽聽聽聽 byte[] buffer=new byte[5120];
聽聽聽聽聽聽聽聽 for( int j=0; j<2; j++ )
聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽 if( fis.read( buffer )==5120 )
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 for( int i=0; i<5120; i++ )
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 num++;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽 //*/
聽聽聽聽聽聽聽聽 /*/ No.2
聽聽聽聽聽聽聽聽 byte[] buffer=new byte[2048];
聽聽聽聽聽聽聽聽 for( int j=0; j<5; j++ )
聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽 if( fis.read( buffer )==2048 )
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 for( int i=0; i<2048; i++ )
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 num++;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽 //*/
聽聽聽聽聽聽聽聽 /*/ No.4
聽聽聽聽聽聽聽聽 byte[] buffer=new byte[1024];
聽聽聽聽聽聽聽聽 for( int j=0; j<10; j++ )
聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽 if( fis.read( buffer )==1024 )
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 for( int i=0; i<1024; i++ )
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 num++;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽 //*/
聽聽聽聽聽聽聽聽 fis.close();
聽聽聽聽聽聽 }
聽聽聽聽 catch( FileNotFoundException fnfe )
聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽 fnfe.printStackTrace();
聽聽聽聽聽聽聽聽聽 }
聽聽聽聽 catch( IOException ioe )
聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽 ioe.printStackTrace();
聽聽聽聽聽聽聽聽聽 }
聽聽聽聽 catch( Exception e )
聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽 e.printStackTrace();
聽聽聽聽聽聽聽聽聽 }
聽聽聽聽 return "";
聽 }
聽 /*****************************************************************************
聽聽 *
聽聽 * 涓誨嚱鏁板叆鍙?br />聽聽 *
聽聽 ****************************************************************************/
聽 public static void main( String[] args )
聽 {
聽聽聽 try{ long begin=System.currentTimeMillis();
聽聽聽聽聽聽聽聽 ReadFaster rf=new ReadFaster();
聽聽聽聽聽聽聽聽 System.out.println( "鎬誨叡鑰楁椂錛?+( System.currentTimeMillis()-begin )+"姣\r\n" );
聽聽聽聽聽聽 }
聽聽聽 catch( Exception e )
聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽 e.printStackTrace();
聽聽聽聽聽聽聽聽 }
聽 }
}
聽聽聽 int length=12;
聽聽聽 String temp="12345678901234567890"
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 +"12345678901234567890"
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 +"12345678901234567890"
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 +"12345678901234567890"
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 +"12345678901234567890"
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 +"榛戝甯濆浗蹇嶈呯榫熷彉褰㈤噾鍒?
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 +"12345678901234567890"
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 +"12345678901234567890"
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 +"12345678901234567890"
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 +"12345678901234567890"
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 +"12345678901234567890";
聽聽聽 int times=10000000;聽 //鍗冧竾
聽聽聽 /*/
聽聽聽 int begin=100;
聽聽聽 int length=120;
聽聽聽 String temp="12345678901234567890"
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 +"12345678901234567890"
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 +"12345678901234567890"
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 +"12345678901234567890"
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 +"12345678901234567890"
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 +"榛戝甯濆浗蹇嶈呯榫熷彉褰㈤噾鍒?
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 +"榛戝甯濆浗蹇嶈呯榫熷彉褰㈤噾鍒?
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 +"榛戝甯濆浗蹇嶈呯榫熷彉褰㈤噾鍒?
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 +"榛戝甯濆浗蹇嶈呯榫熷彉褰㈤噾鍒?
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 +"榛戝甯濆浗蹇嶈呯榫熷彉褰㈤噾鍒?
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 +"榛戝甯濆浗蹇嶈呯榫熷彉褰㈤噾鍒?
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 +"榛戝甯濆浗蹇嶈呯榫熷彉褰㈤噾鍒?
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 +"榛戝甯濆浗蹇嶈呯榫熷彉褰㈤噾鍒?
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 +"榛戝甯濆浗蹇嶈呯榫熷彉褰㈤噾鍒?
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 +"榛戝甯濆浗蹇嶈呯榫熷彉褰㈤噾鍒?
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 +"12345678901234567890"
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 +"12345678901234567890"
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 +"12345678901234567890"
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 +"12345678901234567890"
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 +"12345678901234567890";
聽聽聽 int times=1000000;聽 //鐧句竾
聽聽聽 //*/
聽聽聽 char[] oldArray=temp.toCharArray();
聽聽聽 char[] newArray=null;
聽聽聽 long start=0L;
聽聽聽 ////////////////////////////////////////////////////////////////////////////
聽聽聽 //
聽聽聽 // 鍗曠函璧嬪?br />聽聽聽 //
聽聽聽 ////////////////////////////////////////////////////////////////////////////
聽聽聽 newArray=new char[length];
聽聽聽 start=System.currentTimeMillis();
聽聽聽 for( int i=0; i<times; i++ )
聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽 for( int j=0; j<length; j++ )
聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽 newArray[j]=oldArray[begin+j];
聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽 }
聽聽聽 System.out.println( new String( newArray )+"銆"+( System.currentTimeMillis()-start ) );
聽聽聽 ////////////////////////////////////////////////////////////////////////////
聽聽聽 //
聽聽聽 // System.arraycopy
聽聽聽 //
聽聽聽 ////////////////////////////////////////////////////////////////////////////
聽聽聽 newArray=new char[length];
聽聽聽 start=System.currentTimeMillis();
聽聽聽 for( int i=0; i<times; i++ )
聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽 System.arraycopy( oldArray, begin, newArray, 0, length );
聽聽聽聽聽聽 }
聽聽聽 System.out.println( new String( newArray )+"銆"+( System.currentTimeMillis()-start ) );
聽 }
}
涓ぎ閾惰閫氳繃璋冩暣瀛樻鍑嗗閲戠巼錛屽彲浠ュ獎(jiǎng)鍝嶉噾铻嶆満鏋勭殑淇¤捶鎵╁紶鑳藉姏錛屼粠鑰岄棿鎺ヨ皟鎺ц揣甯佷緵搴旈噺銆傚瓨?gòu)茟謬嗗閲戝崰閲戣瀺鏈烘瀯瀛構(gòu)凭鎬婚鐨勬瘮渚嬪垯鍙仛瀛樻鍑嗗閲戠巼銆?
鎵撴瘮鏂硅錛屽鏋滃瓨?gòu)茟謬嗗閲戠巼湄?fù)錛戯紣錛咃紝灝辨剰鍛崇潃閲戣瀺鏈烘瀯姣忓惛鏀訛紤錛愶紣錛愪竾鍏冨瓨?gòu)凭锛岃鍚戝ぎ琛尵~村瓨錛戯紣錛愪竾鍏冪殑瀛樻鍑嗗閲戯紝鐢ㄤ簬鍙戞斁璐鋒鐨勮祫閲戜負(fù)錛欙紣錛愪竾鍏冦傚鏋滃皢瀛樻鍑嗗閲戠巼鎻愰珮鍒幫紥錛愶紖錛岄偅涔堥噾铻嶆満鏋勭殑鍙捶璧勯噾灝嗗噺灝戝埌錛橈紣錛愪竾鍏冦?
鍦ㄥ瓨?gòu)茟謬嗗閲戝埗搴︿笅锛岄噾铻嶆満鏋勪笉鑳綖畣鍏跺惛鏀剁殑瀛構(gòu)茟謪ㄩ儴鐢ㄤ簬鍙戞斁璐穻凭锛屽繀椤讳繚鐣欎竴瀹氱殑璧勯噾鍗沖瓨?gòu)茟謬嗗閲戝Q屼互澶囧鎴鋒彁嬈劇殑闇瑕侊紝鍥犳瀛樻鍑嗗閲戝埗搴︽湁鍒╀簬淇濊瘉閲戣瀺鏈烘瀯瀵瑰鎴風(fēng)殑姝e父鏀粯銆?/font>
鎵撲釜姣旀柟錛屼笉澶伆褰擄紝鎴戞病璋堬姬錛﹀墠錛岃佸錛堜腑澶摱琛岋級(jí)涓轟簡(jiǎn)鎺у埗鎴戯紙鍥藉唴鍏朵粬閾惰鎴栧悎娉曞瓨璐鋒鏈烘瀯錛夌殑鑺辮垂錛屽喅瀹氭瘡鏈堟寜鐓ф垜褰撴湀鐨勫伐璧勫悜濂逛笂緙翠竴瀹氭瘮渚嬬殑閽憋紝榪欎釜姣斾緥灝辨槸瀛樻鍑嗗閲戠巼錛岃繖閮ㄥ垎閽卞氨鏄瓨?gòu)茟謬嗗閲戝Q岃繖閮ㄥ垎涓婄即鐨勯挶鎴戞槸鍙互闅忔椂鐢寵浣跨敤鐨勶紝浣嗗繀欏葷敤鍚庤ˉ鍏ㄣ備絾鏄垜鍝ヤ滑澶氾紝鍊熼挶涔熷錛屾垜鍙堝ソ鏂借垗錛堣捶嬈撅級(jí)錛岀粨鏋滀竴浜涗漢鍊熶簡(jiǎn)閽變笉榪橈紝鑰佸寰楃煡闈炲父鐢熸皵錛屽喅瀹氭彁楂樹笂緙存瘮渚嬶紙涓婅皟瀛樻鍑嗗閲戠巼錛夛紝榪欐牱鎴戞瘡鏈堝彲渚涗嬌鐢ㄧ殑閽卞氨灝戜簡(jiǎn)錛屾垜鍊熼挶鐨勬椂鍊欏氨寰楄鐪熻冭檻浜?jiǎn)锛?xì)榪欏皬瀛愯繕?gòu)茽鎴戦挶锛堜俊鐢ㄨ瘎瀹″Q夛紝涓嶈兘鍊燂紱閭e皬瀛愭壘鎴戝熼挶璧屽崥錛堥闄╅」鐩姇璧勶級(jí)錛岄闄╁ぇ錛屼笉鑳藉燂紱鍙﹀榪欎釜灝忓瓙鏈変笢瑗垮瓨鎴戣繖錛堟姷鎶兼垨璐ㄦ娂錛夛紝鎴戜笉鎬曚粬嬈犻挶錛屽熺粰浠栥?/font>
榪欐澶涓婅皟瀛樻鍑嗗閲戠巼鍜岃捶嬈懼埄鎭紝鍧囨槸涓轟簡(jiǎn)鍑忓皯榪囧害璐鋒錛屽噺灝戣祫閲戞祦鍔ㄨ繃蹇紝浠ュ強(qiáng)閫氳揣鑶ㄨ儉錛屽叾瀹炴垜鎰熻鍍忔槸鍦ㄦ墦鍘嬭偂甯?jìng)鐨剺q囧害鎶曡祫錛岃涓嶅畾璐㈡斂閮ㄨ繃孌墊椂闂村張瑕佹湁鎺柦浜?jiǎn)锛屼簲鏈堜唤浠栦滑鍒氳皟鏁寸殑鍗拌娹q◣錛岃繖嬈′笉鐭ラ亾浠栦滑鍙堟湁浣曚婦鍔紵
澶琛岄暱鍛ㄥ皬宸濈幇鍦ㄦ渶鎯沖敱鐨勬瓕灝辨槸錛氫綘錛堥挶錛夊揩鍥炴潵錛屾垜鐨勬墜蹇?jī)涓鐩村湪鍐掓睏錛屼綘錛堥挶錛夊揩鍥炴潵錛岄摱琛屼緷浣犺屽瓨鍦ㄣ?br />
/*******************************************************************************
聽*
聽* 瀵規(guī)暟瀛楁垨鏂囦歡鍚嶆帓鍒?br />聽*
聽* 娌℃湁鑰冭檻姹夊瓧鏄劇ず鏃跺崰涓や釜浣嶇疆鐨勬儏鍐碉紝鍗沖鏂囦歡鍚嶅鐞嗕笉澶ソ
聽*
聽* Author: NeedJava
聽*
聽* Modified: 2007.09.09
聽*
聽******************************************************************************/
public final class DotAlign
{
聽 private DotAlign(){}
聽 private static final String align( String string,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽char prefix,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 char suffix,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽int prefixLength,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 int suffixLength,
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽boolean isNumber )
聽 {
聽聽聽 if( string==null||string.equals( "" )||string.equals( "." )||prefixLength<0||suffixLength<0 )
聽聽聽聽聽 {
聽聽聽聽聽聽聽 return string;
聽聽聽聽聽 }
聽聽聽 //濡傛灉娌℃湁灝忔暟錛岄偅涔堟寜鐓у父鐞嗭紝灝忔暟鐐逛篃搴旇鐪佺暐
聽聽聽 char[] buffer=new char[( suffixLength>0 ? prefixLength+1+suffixLength : prefixLength )];
聽聽聽 int stringLength=string.length();
聽聽聽 int dot=stringLength-1;
聽聽聽 //鎵懼埌灝忔暟鐐逛綅緗紝鍙互鐢╨astIndexOf()浠f浛
聽聽聽 while( dot>-1 )
聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽 if( string.charAt( dot-- )=='.' )
聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 dot++;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 break;
聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽 }
聽聽聽 //System.out.print( Integer.toString( dot )+"\t" );
聽聽聽 //鈽呮暣鏁伴儴鍒嗭紝浠庡皬鏁扮偣宸︿綅鍚戝乏縐?br />聽聽聽 int pointer=( dot>-1 ? dot-1 : stringLength-1 );
聽聽聽 for( int i=prefixLength-1; i>-1; i-- )
聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽 if( pointer>-1 )
聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽 buffer[i]=string.charAt( pointer-- );
聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽 else{ buffer[i]=prefix;
聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽 }
聽聽聽 //濡傛灉娌℃湁灝忔暟閮ㄥ垎錛岄偅涔堟寜鐓у父鐞嗭紝灝忔暟鐐瑰簲璇ョ渷鐣?br />聽聽聽 if( suffixLength>0 )
聽聽聽聽聽 {
聽聽聽聽聽聽聽 //鈽呭皬鏁扮偣
聽聽聽聽聽聽聽 buffer[prefixLength]=( dot>-1||isNumber ? '.' : suffix );
聽聽聽聽聽聽聽 //鈽呭皬鏁伴儴鍒嗭紝浠庡皬鏁扮偣鍙充綅鍚戝彸縐?br />聽聽聽聽聽聽聽 pointer=( dot>-1 ? dot+1 : stringLength );
聽聽聽聽聽聽聽 for( int i=prefixLength+1; i<buffer.length; i++ )
聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽 if( pointer<stringLength )
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 buffer[i]=string.charAt( pointer++ );
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽聽 else{ buffer[i]=suffix;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽 }
聽聽聽 return new String( buffer );
聽 }
聽 public final static void main( String[] args )
聽 {
聽聽聽 System.out.println( "\r\n-------------------------------------------\r\n" );
聽聽聽 String[] number={ "",
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 ".",
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 ".5",
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 ".56",
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 ".567",
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 ".5678",
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 "1234",
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 "1234.",
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 "1234.5",
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 "1234.56",
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 "1234.567",
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 "1234.5678" };
聽聽聽 for( int i=0; i<number.length; i++ )
聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽 System.out.println( "["+DotAlign.align( number[i], ' ', '0', 7, 2, true )+"]聽聽 ["+number[i]+"]" );
聽聽聽聽聽聽 }
聽聽聽 System.out.println( "\r\n-------------------------------------------\r\n" );
聽聽聽 String[] file={ "",
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 ".",
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 ".j",
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 ".jp",
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 ".jpe",
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 ".jpeg",
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 "1234",
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 "1234.",
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 "1234.j",
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 "1234.jp",
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 "1234.jpe",
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 "1234.jpeg" };
聽聽聽 for( int i=0; i<file.length; i++ )
聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽 System.out.println( "["+DotAlign.align( file[i], ' ', ' ', 7, 5, false )+"]聽聽 ["+file[i]+"]" );
聽聽聽聽聽聽 }
聽聽聽 System.out.println( "\r\n-------------------------------------------\r\n" );
聽 }
}
鏍規(guī)嵁 RSSOwlLoader.java 涓殑
[code]
private static void startupProcess( String[] args )
{
聽 ...
聽 if( !System.getProperties().containsKey( PROPERTY_ALLOW_MULTI_INSTANCES )&&StartupManager.isRSSOwlRunning( feedArgument ) )
聽 ...
}
[/code]
榪借釜鍒?StartupManager.java 瑙佷笅錛?/font>
榪借釜鍒?StartupManager.isRSSOwlRunning( String message ) 鐢ㄩ斾負(fù)寤虹珛ServerSocket錛岀洃鍚湰鍦?794绔彛
[code]
static ServerSocket applLockSocket;
public static boolean isRSSOwlRunning( String message )
{
聽 try{ applLockSocket=new ServerSocket( 8794, 50, InetAddress.getByName( "127.0.0.1" ) );聽 //1987騫?鏈?鏃ュ嚭鐢燂紵
聽聽聽聽聽聽 handleSocketUnBound();聽 //
聽聽聽聽聽聽 return false;
聽聽聽聽 }
聽 catch( java.net.BindException e )聽聽聽 //Another instance already running
聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽 ...
聽聽聽聽聽聽聽聽 handleSocketBound( message );聽 //
聽聽聽聽聽聽聽聽 return true;
聽聽聽聽聽聽 }聽
聽 catch( IOException e )聽 //Other Error
聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽 ...
聽聽聽聽聽聽聽聽 return false;
聽聽聽聽聽聽 }
}
[/code]
榪借釜鍒?StartupManager.handleSocketUnBound() 鍜?StartupManager.handleSocketBound( String message )
[code]
private static void handleSocketBound( String message )
{
聽 Socket socket;
聽 try{ socket=new Socket( InetAddress.getByName( "127.0.0.1" ), 8794 );
聽聽聽聽聽聽 PrintWriter writer=new PrintWriter( new OutputStreamWriter( socket.getOutputStream() ) );
聽聽聽聽聽聽 writer.println( ( message!=null&&message.length()>0 ) ? message : DEFAULT_MESSAGE );
聽聽聽聽聽聽 writer.flush();
聽聽聽聽 }
聽 catch( UnknownHostException e )
聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽 ...
聽聽聽聽聽聽 }
聽 catch( IOException e )
聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽 ...
聽聽聽聽聽聽 }
}
[/code]
[code]
/**
聽* Server not yet running. Start it and listen for incoming messages.
聽*/
private static void handleSocketUnBound()
{
聽 listen();聽 //杞悜錛屼負(fù)浜?jiǎn)瀵箍U板ソ鐪嬶紵榪樻槸涓轟簡(jiǎn)鍏煎錛?br />}
/**
聽* Listen for incoming messages.鐪嬬湅鎺ュ彈鐨勮繛鎺ュ彂閫佷簡(jiǎn)浠涔堝唴瀹?br />聽*/
private static void listen()
{
聽 //Run the Server inside a Thread
聽 server=new ExtendedThread()聽 //extends from Thread
聽 {
聽聽聽 public void run()
聽聽聽 {
聽聽聽聽聽 while( !isStopped()&&!isInterrupted() )
聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽 BufferedReader buffReader=null;
聽聽聽聽聽聽聽聽聽聽聽聽 try{ //Read a single line from the Socket
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 Socket socket=applLockSocket.accept();
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 buffReader=new BufferedReader( new InputStreamReader( socket.getInputStream() ) );
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 final String message=buffReader.readLine();
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 socket.close();
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 //Check the received message
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 if( ( message!=null&&message.length()>0 )&&GUI.display!=null&&!GUI.display.isDisposed() )聽 //嬋媧繪煇涓狦UI鐨勪唬鐮佸湪姝わ紝鎴戜滑榪涘幓鐪嬬湅
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 GUI.display.asyncExec( new Runnable()
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 public void run()
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 //Restore the RSSOwl Window and handle Message
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 if( GUI.isAlive() )
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 GUI.rssOwlGui.restoreWindow();聽 //鎵懼埌浜?jiǎn)锛岃浆鍒癎UI.java
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 //Handle the message as Link if valid argument
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 if( RSSOwlLoader.isValidArgument( message ) )
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 GUI.rssOwlGui.getEventManager().actionHandleSuppliedLink( message );
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 } );
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽聽 catch( IOException e )
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 ...
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽聽 finally{ //鍏抽棴嫻?br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽 }
聽聽聽 }
聽 };
聽 server.setDaemon( true );
聽 server.setName( "Startup Manager Thread" );
聽 server.start();
}
[/code]
榪借釜鍒?GUI.java 瑙佷笅錛?/font>
榪借釜鍒癎UI.restoreWindow()
[code]
/**
聽* Restore the application window either from taskbar or the tray.
聽*/
public void restoreWindow()
{
聽 //RSSOwl is minimized to Tray
聽 if( GlobalSettings.useSystemTray()&&rssOwlSystray!=null&&rssOwlSystray.isMinimizedToTray() )
聽聽聽 {
聽聽聽聽聽 rssOwlSystray.restoreWindow();
聽聽聽 }
聽 else{ //RSSOwl is not active
聽聽聽聽聽聽聽 shell.forceActive();聽 //灝辨槸瀹冧簡(jiǎn)
聽聽聽聽聽聽聽 shell.setMinimized( false );
聽聽聽聽聽 }
}
[/code]
鍘熺悊濡備笅錛?
鍦ㄦ湰鍦?794绔彛寤虹珛鏈嶅姟鐩戝惉錛屽茍涓斾竴鐩寸洃鍚绔彛錛岃瘯鍥炬帴鍙楁绔彛鍏跺畠瀹炰緥錛堝叾瀹冪▼搴忥紵錛夊彂閫佺殑杈撳叆
濡傛灉璇誨埌鏁版嵁錛堝ソ鍍忔病鏈夊垽鏂暟鎹殑鍚堟硶鎬э紝浠呬粎鍒ゆ柇鏁版嵁涓嶄負(fù)絀猴級(jí)錛屽茍涓旇嚜宸變笉鏄滄縺媧燴濈姸鎬侊紝灝扁滄縺媧燴濊嚜宸憋紱
濡傛灉寤虹珛鏈嶅姟鐩戝惉涓嶆垚鍔燂紝璇存槑宸茬粡鏈夊疄渚嬶紙鍏跺畠紼嬪簭錛燂級(jí)鍗犵敤姝ょ鍙d簡(jiǎn)錛屽悜姝ょ鍙e彂閫佹暟鎹敜閱掑墠涓涓疄渚嬶紝鍋滃嚑縐掍互渚垮墠涓涓疄渚嬫帴鍙楋紝鐒跺悗閫鍑恒?
紼嬪簭鐢ㄧ殑鏄疭WT錛屾縺媧繪柟娉曠敤鐨勬槸shell.forceActive()錛宐ut it's not good for core java.
浠ヤ笂鍒嗘瀽濡傛湁涓嶅錛屾伋璇鋒枾姝c?/font>
聽
import java.io.File;
import java.io.IOException;
import java.io.PrintStream;
import java.io.FileOutputStream;
import java.io.FileNotFoundException;
import javax.swing.JFrame;
/*******************************************************************************
聽*
聽* 鍙繍琛屼竴涓疄渚?br />聽*
聽* Just single instance
聽*
聽*
聽* Author: NeedJava
聽*
聽* Modified: 2007.08.29
聽*
聽*
聽* 浣犲彲浠ヤ嬌鐢ㄦ紼嬪簭浜庝換浣曞湴鏂癸紝浣嗚淇濈暀紼嬪簭浣滆呭強(qiáng)娉ㄩ噴鐨勫畬鏁淬傚鏋滀綘鏀硅繘浜?jiǎn)绋嬪簭锛?br />聽*
聽* 璇峰湪鍘熶綔鑰呭悗娣誨姞濮撳悕錛屽錛欰uthor: NeedJava/Jack/Mike錛岀増鏈強(qiáng)淇敼鏃墮棿鍚岀悊銆?br />聽*
聽******************************************************************************/
public final class SingleInstance
{
聽 /*****************************************************************************
聽聽 *
聽聽 * 鏋勯犲嚱鏁?br />聽聽 *
聽聽 ****************************************************************************/
聽 private SingleInstance()
聽 {
聽聽聽 this( "vab", ".vab", "vab" );
聽 }
聽 public SingleInstance( String filePrefixName, String fileSuffixName, String directoryName )
聽 {
聽聽聽 this.init( filePrefixName, fileSuffixName, directoryName );
聽 }
聽 /*****************************************************************************
聽聽 *
聽聽 * 鍘熺悊錛?br />聽聽 *
聽聽 * 鐢ㄩ噸瀹氬悜灝嗘爣鍑嗛敊璇緭鍑烘祦瀹氬悜鍒頒竴涓棩蹇楁枃浠訛紝鍗犵敤瀹冿紝浣垮叾涓嶈兘琚垹闄?br />聽聽 *
聽聽 * 浠ュ悗鐨勫疄渚嬭瘯鍥懼皢瀛樺湪鐨勬鏃ュ織鏂囦歡鏀瑰悕騫朵笖鍙﹀瓨涓烘煇涓枃浠跺す涓?br />聽聽 *
聽聽 * 濡傛灉鎴愬姛錛岃鏄庢病鏈夌▼搴忓崰鐢ㄥ畠錛堜笉鎺掗櫎浣犲湪鐢ㄥ畠錛岀己闄鳳紵錛夛紝姝eソ淇濆瓨鏃ュ織
聽聽 *
聽聽 * 濡傛灉涓嶆垚鍔燂紝閫鍑恒乺enameTo鍛戒護(hù)鏈変竴綆弻闆曠殑浣滅敤
聽聽 *
聽聽 ****************************************************************************/
聽 private final void init( String filePrefixName, String fileSuffixName, String directoryName )
聽 {
聽聽聽 if( filePrefixName==null||fileSuffixName==null||directoryName==null )
聽聽聽聽聽 {
聽聽聽聽聽聽聽 exitWithWarning( "Error: Invalid file name.", 10 );
聽聽聽聽聽 }
聽聽聽 //We need check the fileSuffixName here? From the tail?
聽聽聽 String fileName=filePrefixName+fileSuffixName;
聽聽聽 try{ File error=new File( fileName );
聽聽聽聽聽聽聽聽 if( error.exists() )
聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽 File directory=new File( directoryName );
聽聽聽聽聽聽聽聽聽聽聽聽 String newFileName=directoryName+File.separator+convertMillisecond2DateTime( error.lastModified() )+fileSuffixName;
聽聽聽聽聽聽聽聽聽聽聽聽 //System.out.println( newFileName );
聽聽聽聽聽聽聽聽聽聽聽聽 if( directory.exists() )
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 if( directory.isDirectory() )
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 //renameTo涔熸槸濂戒笢涓滐紝鏃㈠彲浠ユ敼鍚嶏紝榪樺彲浠ョЩ鏂囦歡
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 if( !error.renameTo( new File( newFileName ) ) )
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 exitWithWarning( "Error: The instance already exists, I will exit.", 11 );
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 else{ exitWithWarning( "Error: The \'"+directoryName+"\' is not a valid directory.", 21 );
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽聽 else{ if( directory.mkdirs() )
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 //renameTo涔熸槸濂戒笢涓滐紝鏃㈠彲浠ユ敼鍚嶏紝榪樺彲浠ョЩ鏂囦歡
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 if( !error.renameTo( new File( newFileName ) ) )
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 exitWithWarning( "Error: The instance already exists, I will exit.", 11 );
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 else{ exitWithWarning( "Error: Failed to create the \'"+directoryName+"\' directory.", 22 );
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽聽聽 }
聽聽聽聽聽聽聽聽 //閲嶅畾鍚戞爣鍑嗛敊璇緭鍑烘祦錛屾墍鏈夊姛鑳藉叏闈犲畠銆傛潵錛屽暤涓涓?br />聽聽聽聽聽聽聽聽 System.setErr( new PrintStream( new FileOutputStream( fileName ) ) );
聽聽聽聽聽聽 }
聽聽聽 catch( FileNotFoundException fnfe )
聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽 //fnfe.printStackTrace();
聽聽聽聽聽聽聽聽聽聽 exitWithWarning( fnfe.toString(), 23 );
聽聽聽聽聽聽聽聽 }
聽聽聽 catch( IOException ioe )
聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽 //ioe.printStackTrace();
聽聽聽聽聽聽聽聽聽聽 exitWithWarning( ioe.toString(), 29 );
聽聽聽聽聽聽聽聽 }
聽聽聽 catch( Exception e )
聽聽聽聽聽聽聽聽 {
聽聽聽聽聽聽聽聽聽聽 //e.printStackTrace();
聽聽聽聽聽聽聽聽聽聽 exitWithWarning( e.toString(), 99 );
聽聽聽聽聽聽聽聽 }
聽 }
聽 /*****************************************************************************
聽聽 *
聽聽 * You can change the milliseconds to the date and time string here
聽聽 *
聽聽 * I just return the original
聽聽 *
聽聽 * Don't get the same string :)
聽聽 *
聽聽 ****************************************************************************/
聽 private final String convertMillisecond2DateTime( long millisecond )
聽 {
聽聽聽 return ""+millisecond;
聽 }
聽 /*****************************************************************************
聽聽 *
聽聽 * Return the warning and the exit code, then exit the application
聽聽 *
聽聽 ****************************************************************************/
聽 private final void exitWithWarning( String warning, int code )
聽 {
聽聽聽 System.out.println( warning==null ? "" : warning );
聽聽聽 System.exit( code );
聽 }
聽 /*****************************************************************************
聽聽 *
聽聽 * 涓誨嚱鏁板叆鍙?br />聽聽 *
聽聽 ****************************************************************************/
聽 public final static void main( String[] args )
聽 {
聽聽聽 SingleInstance si=new SingleInstance( "error", ".txt", "error" );
聽聽聽 final JFrame frame=new JFrame( "Just single instance. By NeedJava. 2007.08.29" );
聽聽聽 //I stay here, to make some friends happy.
聽聽聽 frame.addWindowListener( new WindowAdapter()
聽聽聽 {
聽聽聽聽聽 public void windowClosing( WindowEvent we )
聽聽聽聽聽 {
聽聽聽聽聽聽聽 frame.dispose();
聽聽聽聽聽聽聽 System.exit( 0 );
聽聽聽聽聽 }
聽聽聽 } );
聽聽聽 frame.setBounds( 200, 200, 700, 70 );
聽聽聽 frame.setVisible( true );
聽 }
}
-- 浣跨敤Northwind嫻嬭瘯
USE Northwind
GO
DECLARE @what varchar(800)
SET @what='White'聽 --瑕佹悳绱㈢殑瀛楃涓?
DECLARE @sql varchar(8000)
DECLARE TableCursor CURSOR LOCAL FOR
SELECT sql='IF EXISTS ( SELECT 1 FROM ['+o.name+'] WHERE ['+c.name+'] LIKE
''%'+@what+'%''
) PRINT ''鎵鍦ㄧ殑琛ㄥ強(qiáng)瀛楁錛歔'+o.name+'].['+c.name+']'''
FROM syscolumns c JOIN sysobjects o ON c.id=o.id
WHERE o.xtype='U' AND c.status>=0 AND c.xusertype IN (175, 239, 231, 167 )
OPEN TableCursor
FETCH NEXT FROM TableCursor INTO @sql
WHILE @@FETCH_STATUS=0
聽 BEGIN
聽聽聽 EXEC( @sql )
聽聽聽 FETCH NEXT FROM TableCursor INTO @sql
聽 END
CLOSE TableCursor
-- 鍒犻櫎娓告爣寮曠敤
DEALLOCATE TableCursor
聽
-- 嫻嬭瘯緇撴灉
鎵鍦ㄧ殑琛ㄥ強(qiáng)瀛楁錛歔Orders].[ShipName]
鎵鍦ㄧ殑琛ㄥ強(qiáng)瀛楁錛歔Customers].[CompanyName]
聽
SETLOCAL EnableDelayedExpansion
DEL /F /Q picture.txt 2>NUL
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::
:: 鍘熺悊錛?br />::
:: 涓鑸儏鍐典笅錛屾湁EXIF淇℃伅鐨勭収鐗囷紝浼?xì)鏈変笁澶勬棄櫁村Q堝綋鐒惰繕鏈夌壒渚嬶級(jí)錛岀涓澶勬牸寮忎負(fù)錛?br />::
:: 2001:01:01 02:04:18
::
:: 絎簩銆佺涓夊鏄湪涓璧風(fēng)殑錛屼腑闂存湁涓狽ULL鍊鹼紝濡備笅錛?br />::
:: 2001:01:01 02:04:18[NULL]2001:01:01 02:04:18
::
:: 鎴戦氳繃WindowsXP鍜孉CDSee8鍒嗘瀽浜?jiǎn)寰堝寮犲泟囧Q屽彂鐜扮涓澶勭殑鏃墮棿寰堝彲鑳芥湁璇紝
::
:: 涔熷氨鏄錛學(xué)indowsXP鍜孉CDSee8瀹為檯浣跨敤鐨勫簲璇ユ槸絎簩鎴栫涓夊鐨勬椂闂達(dá)紝
::
:: 浣跨敤絎簩澶勭殑鏃墮棿銆?br />::
::
:: 娉ㄦ剰錛?br />::
:: 1銆佹湁浜涗漢鍠滄鎶婁竴浜涚瀵嗚棌鍦ㄥ浘鐗囦腑錛岃岀瀵嗘湁鍙兘鍖呭惈鏃墮棿錛屾墍浠ワ紝鍙兘鏈夐棶棰橈紝
::
::聽聽聽 涓嶈繃錛岃繖縐嶆儏鍐靛ソ鍍忓緢灝戯紵
::
:: 2銆佺敱浜嶧INDSTR.EXE鍛戒護(hù)鐨勫眬闄愭э紙騫墮潪鐪熸鐨勬鍒欒〃杈懼紡錛夛紝閿欒鏄毦鍏嶇殑銆?br />::
::
:: 鍙﹀錛?br />::
:: 1銆佸紑濮嬫垜鎶?.jpeg涔熷垪鍏ユ煡鎵撅紝浣嗗彂鐜?.jpe鍙互鎼滅儲(chǔ)鍒?.jpeg錛屽彧濂藉墧鎺?.jpeg浜?br />::
:: 2銆佹垜璁ㄥ帉ACDSee8閲嶅懡鍚嶆椂錛屾妸2001-01-01 02-01-19鏀規(guī)垚2001-01-01 2-1-19錛屼笉濂界湅錛?br />::
:: 3銆佸叾瀹炴垜鍐欒繖涓殑鐩殑灝辨槸淇敼鍥劇墖鍚嶇О涓虹収鐩告椂闂達(dá)紝鍓╀笅鐨勪互鍚庡啓
::
::
:: Author: NeedJava
::
:: Modified: 2007-08-15/2007-08-24/2007-08-25
::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
FOR /R %%a IN ( *.jpg *.jpe *.jfif *.tif ) DO (
聽聽 CLS
聽聽 ECHO 姝e湪澶勭悊銆?%%a!銆?/font>
聽聽 SET "final=NULL"
聽聽 IF "!final!"=="NULL" (
聽聽聽聽聽 SET /A times=0
聽聽聽聽聽 FOR /F "delims=" %%i IN ( 'FINDSTR.EXE "200 199 201 202" "%%a" 2^>NUL ^| MORE 2^>NUL ^| FINDSTR.EXE /R "\<[1-2][0-9][0-9][0-9][:][0-1][0-9][:][0-3][0-9] [0-2][0-9][:][0-5][0-9][:][0-5][0-9]\>" 2^>NUL' ) DO (
聽聽聽聽聽聽聽聽聽 SET /A times+=1
聽聽聽聽聽聽聽聽聽 IF !times! EQU 2 (
聽聽聽聽聽聽聽聽聽聽聽聽 SET "parse=%%i"
聽聽聽聽聽聽聽聽聽聽聽聽 IF "!parse:~-3,1!"==":" IF "!parse:~-9,1!"==" " (
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 SET "parse=!parse:~-19!"
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 ECHO Found [!parse!]
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 FOR /F "tokens=1,2,3,4,5,6 delims=: " %%A IN ( "!parse!" ) DO (
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 SET "final=%%A-%%B-%%C %%D-%%E-%%F"
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 )
聽聽聽聽聽聽聽聽聽聽聽聽 )
聽聽聽聽聽聽聽聽聽 )
聽聽聽聽聽 )
聽聽 )
聽聽 IF "!final!"=="NULL" (
聽聽聽聽聽 FOR /F "delims=" %%i IN ( 'FINDSTR.EXE /I "DateTimeOriginal" "%%a" 2^>NUL' ) DO (
聽聽聽聽聽聽聽聽聽 SET "parse=%%i"
聽聽聽聽聽聽聽聽聽 IF /I "!parse:~-24,7!"=="</exif:" IF "!parse:~-30,1!"=="+" (
聽聽聽聽聽聽聽聽聽聽聽聽 SET "parse=!parse:~-49,19!"
聽聽聽聽聽聽聽聽聽聽聽聽 ECHO Found [!parse!]
聽聽聽聽聽聽聽聽聽聽聽聽 FOR /F "tokens=1,2,3,4,5,6 delims=-:T" %%A IN ( "!parse!" ) DO (
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 SET "final=%%A-%%B-%%C %%D-%%E-%%F"
聽聽聽聽聽聽聽聽聽聽聽聽 )
聽聽聽聽聽聽聽聽聽 )
聽聽聽聽聽 )
聽聽 )
聽聽 IF NOT "!final!"=="NULL" (
聽聽聽聽聽 ECHO Parse [!final!]
聽聽聽聽聽 ECHO [%%~nxa]>>picture.txt
聽聽聽聽聽 ECHO !final!>>picture.txt
聽聽聽聽聽 ECHO;>>picture.txt
聽聽 )
)
GOTO :EOF
@ECHO ON
鍓╀笅鐨勫氨鏄敼鍚嶄簡(jiǎn)錛岀敱浜庤闃插鍚屽悕錛屼篃灝辨槸涓縐掑唴鎷嶄簡(jiǎn)涓や笁寮犺繖鏍風(fēng)殑鎯呭喌錛屾墍浠ラ渶瑕佽拷鍔犳暟瀛楀簭鍒?br />聽
SETLOCAL EnableDelayedExpansion
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::
:: 闇瑕佸尯鍒獸AT32鍜孨TFS鏍煎紡涓嬬殑鍥炴敹绔?br />::
:: FAT32鍥炴敹绔欑粨鏋勫涓嬶細(xì)
::
:: [Recycled]
:: desktop.ini
:: INFO2
::
:: NTFS鍥炴敹绔欑粨鏋勫涓嬶細(xì)
::
:: [Recycler]
::聽聽 [S-1-5-21-1409082233-448539723-725345543-500]
::聽聽聽聽 desktop.ini
::聽聽聽聽 INFO2
::聽聽 [S-1-5-21-1844237615-2139871995-1417001333-500]
::聽聽聽聽 desktop.ini
::聽聽聽聽 INFO2
::聽聽 [S-1-5-21-606747145-261478967-839522115-500]
::聽聽聽聽 desktop.ini
::聽聽聽聽 INFO2
::
:: 鍏朵腑錛?br />::
:: desktop.ini鐢ㄦ潵瀹氫箟鏂囦歡澶癸紝鍛婅瘔緋葷粺錛氫綘鎶婂瓨鎴戠殑鏂囦歡澶瑰彉鎴愬洖鏀剁珯鐨勬牱瀛?br />::
:: INFO2鐢ㄦ潵瀛樻斁褰撳墠鐩樼涓嬪垹闄ょ殑鏂囦歡鐨勫師鏉ヨ礬寰勶紝鐢?.3鐭枃浠跺悕錛屼互鍙?qiáng)涓庢敼鍚嶆枃錃g瀵瑰簲鍏崇郴
::
:: 鎴戜滑灝辨槸鐢ㄧ殑INFO2鏂囦歡錛屽皢閲岄潰瀛樻斁鐨勪俊鎭氳繃涓ゆ鏌ユ壘榪囨護(hù)鍑烘潵
::
:: 閲嶇偣錛?br />::
:: FIND.EXE ":" "C:\Recycled\INFO2" 2>NUL | FINDSTR.EXE /R "^[A-z]:[\\]" 2>NUL
::
:: 鍙傝冿細(xì)
::
::
http://www.cn-dos.net/forum/viewthread.php?tid=25053&fpage=1&highlight=tokens%3D1%2B&page=1
::
:: 鎰熻阿錛?br />::
:: 涓浗DOS鑱旂洘璁哄潧閲屾墍鏈夌粰浜堟垜鍚彂鐨勭儹蹇?jī)錆h錛佷嬌鎴戝彈鐩婂尓嫻咃紒
::
:: Author: NeedJava
::
:: Modified: 2007.08.13
::
:: BTW: 浠婃櫄23鏃朵笢鍖楁柟鍚戞湁鑻變粰搴ф祦鏄熼洦錛屾垜宸茬粡璋冨ソ鐓х浉鏈轟簡(jiǎn)
::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
DEL /F /Q deleted.txt 2>NUL
FOR %%a IN ( C D E F G H I J K L M N O P Q R S T U V Y X Y Z ) DO (
聽聽聽 IF EXIST "%%a:\" (
聽聽聽聽聽聽 ECHO 姝e湪鎼滅儲(chǔ)銆?%a:銆曠洏涓嬬殑鍥炴敹绔欌︹?/font>
聽聽聽聽聽聽 FOR /F "delims=" %%i IN ( 'DIR /AH-D /B /S "%%a:\Recycler\INFO2" 2^>NUL' ) DO (
REM聽聽聽聽聽聽聽 ECHO [%%i] & PAUSE
聽聽聽聽聽聽聽聽聽聽 CALL :parse %%i
聽聽聽聽聽聽 )
聽聽聽聽聽聽 FOR /F "delims=" %%I IN ( 'DIR /AH-D /B /S "%%a:\Recycled\INFO2" 2^>NUL' ) DO (
REM聽聽聽聽聽聽聽 ECHO [%%I] & PAUSE
聽聽聽聽聽聽聽聽聽聽 CALL :parse %%I
聽聽聽聽聽聽 )
聽聽聽 )
)
@ECHO ON
GOTO :EOF
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::
:: 閲嶇偣錛?br />::
:: FIND.EXE ":" "C:\Recycled\INFO2" 2>NUL | FINDSTR.EXE /R "^[A-z]:[\\]" 2>NUL
::
:: 璇︾粏瑙i噴璇峰叧娉ㄤ笂闈㈢殑緗戠珯錛屾棤濂堜綍鐗堜富鐨勫彊榪幫紝鍛靛懙錛屾湰浜哄潗鏉垮嚦鍚?br />::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:parse
ECHO [%1]>>deleted.txt
FOR /F "delims=" %%m IN ( 'FIND.EXE ":" "%1" 2^>NUL ^| FINDSTR.EXE /R "^[A-z]:[\\]" 2^>NUL' ) DO (
聽聽聽 ECHO %%m>>deleted.txt
)
ECHO.>>deleted.txt
聽
鍚庤錛岄壌浜庡緢澶氱梾姣掑枩嬈㈠線鍥炴敹绔欓噷闈㈤捇錛岄氳繃鏌ユ壘鐪熸琚垹闄ょ殑鏂囦歡鍒楄〃錛屾壘鍒板搴旂殑鍒犻櫎鏂囦歡錛岄偅涔堝墿涓嬬殑鏂囦歡鍙互鐪嬬潃鍔炰簡(jiǎn)錛屼及璁″厛瑕佺敤IS鏉鎺夎繘紼?/font>