I got it! read will peek data until meet a line break, but my data doesn't contain any line break. read-char is OK. Thanks all the same!