Преминавайки през някакъв мой код за свързване на сокет, забелязах този метод:
public void write(String line) throws IOException, NullPointerException {
log.fine(line);
byte[] bytes = line.getBytes();
outputStream.write(bytes); // append 13 and 10 here before the write
outputStream.write(13);
outputStream.write(10);
outputStream.flush();
}
и се оказва, че може би въвеждам известна латентност, може би, като пиша реда и след това добавям CR и LF преди промиване.
Ще бъде ли по-ефективно да добавите CR и LF към масива от байтове, което прави само едно извикване на outputStream.write()
вместо три извиквания?
Контекстът е базиран на сокет връзка MUD клиент. (Не, SSH не е опция, MUD игрите използват telnet.)
Тъй като не е ArrayList
или нещо лесно за работа, не съм сигурен колко голям е масивът, така че не знам индекса на последния елемент. Итериране на Array
в нов масив и след това добавяне на CR и LF към следващите елементи? Това изглежда странно. Не съм сигурен как да избегна NullPointerException
при добавяне в края на масива.