john pfeiffer
  • Home
  • Categories
  • Tags
  • Archives

file first line second line detection

// if current is a block the next line MUST BE the corresponding sha or error

import java.io.*;
import java.util.*;

public class Sha1Missing
{
  public static void main( String[] args ) throws IOException
  {
    long start = System.currentTimeMillis();
    commandLineParameterCheck( args );

    BufferedReader br = null;
    int prevblocknumber = -1;
    int currentblocknumber = -1;

      try {
        br = new BufferedReader( new FileReader( args[0] ) );
        String prevlinebuffer = br.readLine();
        String currentlinebuffer = br.readLine();

        prevblocknumber = -1;
        currentblocknumber = -1;

        while( currentlinebuffer != null && prevlinebuffer != null )
        {
            prevblocknumber = getBlockNumber( prevlinebuffer );
            currentblocknumber = getBlockNumber( currentlinebuffer );

            if( currentblocknumber != -1 && prevblocknumber != -1 )
            {
                if( !prevlinebuffer.contains( "sha1") && !currentlinebuffer.contains( "sha1") )
                {
                System.out.println( "PREV: " + prevlinebuffer );
                System.out.println( "CURR: " + currentlinebuffer );
                }
            }

            prevlinebuffer = currentlinebuffer;
            currentlinebuffer = br.readLine();
        }

      }catch( Exception e )
      {     e.printStackTrace();
      }
      finally
      {     br.close();
      }

      long end = System.currentTimeMillis();
      long duration = end - start;
      System.out.println( "Completed in " + duration + " ms" );
  } //end main


  private static boolean sha1Exists( int originalblocknumber , String filename )
  {
    boolean result = false;
    int blocknumber = -1;

    if( filename != null && originalblocknumber != -1 )
    {
        blocknumber = getBlockNumber( filename );
        System.out.println( "in sha1 exists: " + filename );
        System.out.println( originalblocknumber + " vs " + blocknumber );

        if( originalblocknumber == blocknumber && filename.endsWith( "sha1") )
        {
            result = true;
        }
    }

    return result;
  } //end sha1Exists()

  private static int getBlockNumber( String filename )
  {
    StringTokenizer st = null;
    String token = null;
    int blocknumber = -1;

    if( filename != null )
    {
        st = new StringTokenizer( filename , "." );
        if( st.countTokens() > 1 )
        {
            token = st.nextToken();
            token = st.nextToken(); //blocknumber is the 2nd token

            if( !token.isEmpty() && isIntNumber( token ) )
            {       blocknumber = Integer.parseInt( token );
            }
        }
    }
    return blocknumber;
  } //end isBlock()


  private static boolean isIntNumber( String number )
  {
    try{
        Integer.parseInt( number );
    } catch( NumberFormatException nfe )
    {   return false;
    }
    return true;
  }

  private static void commandLineParameterCheck( String[] args )
  {
      if( args.length != 1 || args[0].isEmpty() )
        {
            System.out.println( args.length + " does not equal the 1 required arguments.");
            System.out.println( "version 0.3: java -jar filescan.jar filename" );
            System.exit( 1 );
        }
  }
} //end class

  • « file scan measure method execution time
  • exceptions list »

Published

Dec 1, 2011

Category

java

~246 words

Tags

  • detection 1
  • file 92
  • first 2
  • java 252
  • line 31
  • second 1