ANTLRFileStream 已弃用,我可以用什么代替?

ANTLRFileStream is deprecated, what can I use instead?

我正在尝试编译一个测试 class 来测试一个简单的语法。

import org.antlr.v4.runtime.*;


public class Test {
    public static void main(String[] args) throws Exception 
    {
        CharStream input = null;
        // pick an input stream (filename from commandline or stdin)
        if(args.length > 0) input = new ANTLRFileStream(args[0]);
        else input = new ANTLRInputStream(System.in);
        // create the lexer
        DrinkLexer lex = new DrinkLexer(input);
        // create a buffer of tokens between the lexer and parser
        CommonTokenStream tokens = new CommonTokenStream(lex);
        // create the parser, attaching it to the token buffer
        DrinkParser p = new DrinkParser(tokens);
        p.drinkSentence(); // launch parser at drinkSentence file
    }
}

我将如何替换已弃用的 class?

使用来自CharStreams的各种静态方法:

CharStream input = null;
// pick an input stream (filename from commandline or stdin)
if(args.length > 0) input = CharStreams.fromFileName(args[0]);
else input = CharStreams.fromStream(System.in);
// create the lexer
DrinkLexer lex = new DrinkLexer(input);
// create a buffer of tokens between the lexer and parser
CommonTokenStream tokens = new CommonTokenStream(lex);
// create the parser, attaching it to the token buffer
DrinkParser p = new DrinkParser(tokens);
p.drinkSentence(); // launch parser at drinkSentence file