### Question:
RxJavaDemo implements ReactiveStreamsDemo { public static void readFile(File file) { try (final BufferedReader br = new BufferedReader(new FileReader(file))) { Flowable<String> flow = Flowable.fromPublisher(new FilePublisher(br)); flow.observeOn(Schedulers.io()) .blockingSubscribe(System.out::println); } catch (IOException e) { e.printStackTrace(); } }  static List<Integer> doSquares(); static List<Integer> doParallelSquares(); @Override Future<List<Integer>> doSquaresAsync(int count); @Override Future<String> doStringConcatAsync(int count); @Override Future<List<Integer>> doParallelSquaresAsync(int count); @Override Future<String> doParallelStringConcatAsync(int count); static void runComputation(); static void writeFile(File file); static void readFile(File file); static void readFile2(File file); static int countUsingBackpressure(long sleepMillis);  }### Answer:
@Test public void testReadFile() { demo.readFile(new File("README.md")); }