-1

我有以下代码:

public class Interface {

    public void exec(){
        try {
            _inputStream.read();
            BufferedReader br = new BufferedReader( new InputStreamReader( _inputStream ));
            System.out.println( br.readLine() );
        } catch (IOException e) {
        }

    }

    public void setInputStream( InputStream inputStream ){
        _inputStream = inputStream;
    }

    private InputStream _inputStream;

}

public class Run {

    public static void main(String[] args) {
        Interface ui = new Interface();
        ui.setInputStream( new ByteArrayInputStream( "2 4 N".getBytes( Charset.defaultCharset() ) ) );
        ui.exec();
    }
}

每当我运行这段代码时,我打印出来的只是

" 4 N"

第一个字符丢失了。我的流发生了什么,我可以做些什么来防止它?

4

2 回答 2

7
_inputStream.read();

消耗一个不去的字符BufferedReader。你自己丢弃了那个角色。只需删除该行,就可以了。

于 2013-02-10T23:46:10.720 回答
2

因为你_inputStream.read();先打电话。只需删除该行。

于 2013-02-10T23:47:49.500 回答