自前でバッファを持って、Serialをラップするようなクラスを作って読み出すとか、なんならソースもあるみたいなので、Serialクラスを改造しちゃうのもありでしょう。Serail.read()するときにポインタを進めないだけでいいはずですね。
ただ、peek()がそれほど一般的でないというのは、なくてもなんとかなる(仮に読み出した一バイトをアプリケーション側で保持したっていい)ことが多いというのがあるわけで。その辺は損得を考えたほうがよいかも知れません。
Javaはあんまり知らないのですが、これでお作法に則っているかしら? こんなのでとりあえずそれっぽく動きましたけれど。
processing
1import processing.serial.*;
2
3ModSerial myPort;
4void setup(){
5 myPort = new ModSerial(this, "COM99",115200);
6}
7
8void draw(){
9 while(myPort.available()>0){
10 print(myPort.peek());
11 print('/');
12 println((char)myPort.read());
13 }
14}
Processing
1//スケッチにModSerial.javaというタブを作成して以下を記述
2package processing.serial;
3import processing.core.*;
4
5public class ModSerial extends Serial {
6 public ModSerial(PApplet parent, String portName, int baudRate){
7 super(parent, portName, baudRate);
8 }
9 public int peek() {
10 if (inBuffer == readOffset) {
11 return -1;
12 }
13
14 synchronized (buffer) {
15 int ret = buffer[readOffset] & 0xFF; //readOffsetのインクリメントをしない
16 return ret;
17 }
18 }
19}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。