1 package p; 2 import java.io.InputStream; 3 import java.io.FileInputStream; 4 public class App { 5 public static void main(String[] args) throws Exception { 6 boolean f = true; 7 StringBuilder sb = new StringBuilder(); 8 String expected = null; 9 for (String s: args) { 10 if (expected == null) { 11 expected = s; 12 } else if (s.equals("-")) { 13 f = false; 14 } else if (f) { 15 try (InputStream is = new FileInputStream(s)) { 16 is.readAllBytes(); 17 sb.append('+'); 18 } catch (SecurityException se) { 19 System.out.println(se); 20 sb.append('S'); 21 } catch (Exception e) { 22 System.out.println(e); 23 sb.append('-'); 24 } 25 } else { 26 try (InputStream is = App.class.getResourceAsStream(s)) { 27 is.readAllBytes(); 28 sb.append('+'); 29 } catch (NullPointerException npe) { 30 System.out.println(npe); 31 sb.append('0'); 32 } catch (Exception e) { 33 System.out.println(e); 34 sb.append('-'); 35 } 36 } 37 } 38 if (!sb.toString().equals(expected)) { 39 throw new Exception("Expected " + expected + ", actually " + sb); 40 } else { 41 System.out.println("OK"); 42 } 43 } 44 }