java算法题必备: 快速输入输出

133 阅读1分钟

本文已参与[新人创作礼]活动,一起开启掘金创作之路.

转载自:原文链接

快速输入1

 // 创建分词器输入流
 StreamTokenizer in = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
 // 转到下一个标记
 in.nextToken();
 // 输入字符
 String str = in.sval;
 // 转到下一个标记
 in.nextToken();
 // 输入数字
 double num = in.nval;

快速输入2

 import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.InputStreamReader;
 ​
 public class BufferedReaderInput {
     public static void main(String[] args) throws IOException {
         BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); // 输入
         String line = in.readLine(); // 输入的一行字符
         System.out.println(line);
     }
 }
 ​

快速输入的静态工具类

 // 快速输入类
     static class Reader {
         static StreamTokenizer in = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
         static BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
 ​
         // 获取下一段文本 ,以空格回车等为分界符
         static String next() throws IOException {
             in.nextToken();
             return in.sval;
         }
 ​
         // 获取数字
         static int nextInt() throws IOException {
             in.nextToken();
             return (int) in.nval;
         }
 ​
         static double nextDouble() throws IOException {
             in.nextToken();
             return in.nval;
         }
 ​
         // 获取一行
         static String nextLine() throws IOException {
             return bf.readLine();
         }
     }
 ​

快速输出

实测该方法最快,其次是每次调用PrintWriter的println后紧接着调用flush,最次是调用标准输出(syso)。 该类中有print、println、format、append等常用方法。

 // 创建一个输出
 PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)));
 // 输入
 out.println("hello");
 // 刷新(需要刷新才能显示)
 out.flush();
 // 关闭流(不用了就关闭,不然占内存,这是一个好习惯,个人电脑没关系,开发工作时候记得关)
 out.close();

\