Если предполагается работа только со строками, то попробуйте использовать методы readUTF для чтения потока и writeUTF для передачи данных в поток, передавая им строки напрямую. В сочетании с DataOutputStream и DataInputStream.
spoiler
Чтение:
DataInputStream in = new DataInputStream(socket.getInputStream());
String msg = in.readUTF();
Запись:
DataOutputStream out = new DataOutputStream(socket.getOutputStream());
out.writeUTF(msg);
out.flush();