content: package lambdasinaction.chap3;
  
  import java.io.*;
  public class ExecuteAround {
  
  	public static void main(String ...args) throws IOException{
  
          // method we want to refactor to make more flexible
          String result = processFileLimited();
          System.out.println(result);
  
          System.out.println("---");
  
  		String oneLine = processFile((BufferedReader b) -> b.readLine());
  		System.out.println(oneLine);
  
  		String twoLines = processFile((BufferedReader b) -> b.readLine() + b.readLine());
  		System.out.println(twoLines);
  
  	}
  
      public static String processFileLimited() throws IOException {
          try (BufferedReader br =
                       new BufferedReader(new FileReader("lambdasinaction/chap3/data.txt"))) {
              return br.readLine();
          }
      }
  
  
  	public static String processFile(BufferedReaderProcessor p) throws IOException {
  		try(BufferedReader br = new BufferedReader(new FileReader("lambdasinaction/chap3/data.txt"))){
  			return p.process(br);
  		}
  
  	}
  
  	public interface BufferedReaderProcessor{
  		public String process(BufferedReader b) throws IOException;
  
  	}
  }
  