私はそのようなクラスを持っています:
private class verifierListener implements SerialPortEventListener {
String outBuffer;
char charBuffer;
public void serialEvent(SerialPortEvent event) {
if (event.isRXCHAR()) {//If data is available
timeOut = 1000;
lastReadTimer = System.currentTimeMillis();
if (event.getEventValue() > 0) {//Check bytes count in the input buffer
try {
byte[] buffer = verifierPort.readBytes(event.getEventValue());
//INSERT CODE HERE
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
INSERT CODE HERE
(地域で)2つの可能な実施方法で
ケースA:
outBuffer = new String(buffer);
bfrFile.print(outBuffer);
sysOutWriter.append(outBuffer);
ケースB:
for(byte bt : buffer) {
charBuffer = (char) bt;
bfrFile.print(charBuffer);
sysOutWriter.append(charBuffer);
}
コンパイルと実行の両方を行い、想定されていることを実行します。ただし、このコードを可能な限りシームレスに実行するように努めているため、ローエンドPCで送信されたデータが失われるリスクはありません。
文字列の初期化により、ケースAのオーバーヘッドが増えると思いますが、削除する前に確認したかったのです。
どちらがよりクリーンになるか、および/またはそれぞれの処理コストを決定する方法をすべて教えてもらえますか?