算法第四版二分法代码运行出现错误

感谢各位大神!
代码是直接从官网保存下来的,在终端运行时出现以下错误提示,不知道是该怎么改啊...

MA:src vicky$ javac BinarySearch.java
MA:src vicky$ java BinarySearch tinyW.txt < tinyT.txt
Exception in thread "main" java.lang.NumberFormatException: For input string: "{\rtf1\ansi\ansicpg936\cocoartf1404\cocoasubrtf470"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:580)
at java.lang.Integer.parseInt(Integer.java:615)
at In.readAllInts(In.java:528)
at BinarySearch.main(BinarySearch.java:93)

源代码如下
/******************************************************************************

import java.util.Arrays;

/**

  • The {@code BinarySearch} class provides a static method for binary
  • searching for an integer in a sorted array of integers.
  • The indexOf operations takes logarithmic time in the worst case.
  • For additional documentation, see Section 1.1 of
  • Algorithms, 4th Edition by Robert Sedgewick and Kevin Wayne. *
  • @author Robert Sedgewick
  • @author Kevin Wayne
    */
    public class BinarySearch {

    /**

    • This class should not be instantiated. */ private BinarySearch() { }

    /**

    • Returns the index of the specified key in the specified array. *
    • @param a the array of integers, must be sorted in ascending order
    • @param key the search key
    • @return index of key in array {@code a} if present; {@code -1} otherwise */ public static int indexOf(int[] a, int key) { int lo = 0; int hi = a.length - 1; while (lo <= hi) { // Key is in a[lo..hi] or not present. int mid = lo + (hi - lo) / 2; if (key < a[mid]) hi = mid - 1; else if (key > a[mid]) lo = mid + 1; else return mid; } return -1; }

    /**

    • Returns the index of the specified key in the specified array.
    • This function is poorly named because it does not give the rank
    • if the array has duplicate keys or if the key is not in the array. *
    • @param key the search key
    • @param a the array of integers, must be sorted in ascending order
    • @return index of key in array {@code a} if present; {@code -1} otherwise
    • @deprecated Replaced by {@link #indexOf(int[], int)}. */ @Deprecated public static int rank(int key, int[] a) { return indexOf(a, key); }

    /**

    • Reads in a sequence of integers from the whitelist file, specified as
    • a command-line argument; reads in integers from standard input;
    • prints to standard output those integers that do not appear in the file. *
    • @param args the command-line arguments
      */
      public static void main(String[] args) {

      // read the integers from a file
      In in = new In(args[0]);
      int[] whitelist = in.readAllInts();

      // sort the array
      Arrays.sort(whitelist);

      // read integer key from standard input; print if not in whitelist
      while (!StdIn.isEmpty()) {
      int key = StdIn.readInt();
      if (BinarySearch.indexOf(whitelist, key) == -1)
      StdOut.println(key);
      }
      }
      }

报错已经说了:java.lang.NumberFormatException: For input string: "{\rtf1\ansi\ansicpg936\cocoartf1404\cocoasubrtf470",可以看一下输入的格式是否有问题