code: import java.io.*;
  
  public class Rot13 {
  
      public static void main(String[] args) throws IOException {
          if (args.length >= 1) {
              for (String file : args) {
                  try (InputStream in = new BufferedInputStream(new FileInputStream(file))) {
                      rot13(in, System.out);
                  }
              }
          } else {
              rot13(System.in, System.out);
          }
      }
  
      private static void rot13(InputStream in, OutputStream out) throws IOException {
          int ch;
          while ((ch = in.read()) != -1) {
              out.write(rot13((char) ch));
          }
      }
  
      private static char rot13(char ch) {
          if (ch >= 'A' && ch <= 'Z') {
              return (char) (((ch - 'A') + 13) % 26 + 'A');
          }
          if (ch >= 'a' && ch <= 'z') {
              return (char) (((ch - 'a') + 13) % 26 + 'a');
          }
          return ch;
      }
  }
  