在JAVA中使用快速输入时,在Java中读取EOF

时间:2017-12-08 04:13:34

标签: java class input file-io io

我正在解决输入大小非常大的question,而Scanner和BufferedReader输入方式将给出超出时间限制的结果。所以我使用用户定义的快速输入类来获得更快的输入。这次捕获的是我们需要读取输入直到文件结尾。我正在使用的类没有像Scanner类中那样的hasNext(),这在读取输入直到EOF时很有用。我该如何解决这个问题?

FastReader class:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;
import java.util.StringTokenizer;

public class Main
{
    static class FastReader
    {
        BufferedReader br;
        StringTokenizer st;


    public FastReader()
    {
        br = new BufferedReader(new
                 InputStreamReader(System.in));
    }

    String next()
    {
        while (st == null || !st.hasMoreElements())
        {
            try
            {
                st = new StringTokenizer(br.readLine());
            }
            catch (IOException  e)
            {
                e.printStackTrace();
            }
        }
        return st.nextToken();
    }

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

    long nextLong()
    {
        return Long.parseLong(next());
    }

    double nextDouble()
    {
        return Double.parseDouble(next());
    }

    String nextLine()
    {
        String str = "";
        try
        {
            str = br.readLine();
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }
        return str;
    }
}
}

0 个答案:

没有答案