高效的输入输出

  • 借鉴的牛客网2021ACM回顾题解里的大佬
import java.io.*;
import java.util.StringTokenizer;

public class test02 {
    public static void main(String[] args) {
        InputReader inputReader = new InputReader(System.in);
        PrintWriter printWriter = new PrintWriter(System.out);
        test(inputReader,printWriter);
        printWriter.close();
    }

    public static void test(InputReader in,PrintWriter out) {
        int i = in.nextInt();
        out.println(i);
    }

    public static class InputReader{
        private BufferedReader bufferedReader;//将读取的数据存入缓冲区
        private StringTokenizer stringTokenizer;//用来存储输入的字符

        public InputReader(InputStream in) {
            this.bufferedReader = new BufferedReader(new InputStreamReader(in));
            this.stringTokenizer = null;
        }


        public String next() {
            //缓冲区如果没有数据了,再调用该方法会被阻塞
            while (stringTokenizer == null || !stringTokenizer.hasMoreTokens()) {
                try {
                    this.stringTokenizer = new StringTokenizer(bufferedReader.readLine());
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            return this.stringTokenizer.nextToken();
        }

        public int nextInt() {
            return Integer.parseInt(next());
        }

        public boolean hasNext() {
            while (stringTokenizer == null || !stringTokenizer.hasMoreTokens()) {
                String help = null;
                try {
                    help = bufferedReader.readLine();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                if (help==null) return false;
            }
            return true;
        }
	//还可完善其他方法
    }
}
posted @ 2023-05-28 23:07  kd最棒  阅读(18)  评论(0)    收藏  举报