みなさん、良い一日を。
私はsableCCを使用しており、 Reader オブジェクトを入力として受け取ります。たとえば、次のコードは正しく機能します。
compile (new StringReader ("print 1"));
StringReader は、文字列が終わった後に -1 を返すため:
StringReader sr = new StringReader("print 1");
while (sr.ready())
System.out.println (sr.read());
与えます:
112
114
105
110
116
32
49
-1
... always -1
しかし、余分な行や文字なしで同じ文字列をファイル「prog」に書き込み、その上に FileReader を作成すると、-1 文字の代わりに FileReader が改行文字を返すため、コンパイラは存在しない 2 行目で中断します。
FileReader fr = new FileReader( new File("prog"));
while (fr.ready())
System.out.println (fr.read());
与えます:
112
114
105
110
116
32
49
10
ファイル リーダーから StringReader と同じ動作を取得する最短の方法は何ですか?