0
私はサーバーから長い文字列データをソケット経由で取得しており、読んでいる問題があります。Androidのソケットで長い文字列を読む問題
データは約10 MBです。
private String createSocketConnection() throws IOException {
String result = "";
{
String host = ServiceUrlManager.socketIP;
int port = ServiceUrlManager.socketPort;
InetAddress address = InetAddress.getByName(host);
socket = new Socket(address, port);
socket.setSoTimeout(timeOut);
Log.d(TAG, ":::::Socket Connection " + socket.isConnected());
DataOutputStream dataOutputStream = new DataOutputStream(socket.getOutputStream());
dataOutputStream.write(createMSG());
dataOutputStream.write(sockecData);
dataOutputStream.flush();
//Read data from server connection
InputStream inputStream = socket.getInputStream();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte buffer[] = new byte[1024];
for(int s; (s=inputStream.read(buffer)) != -1;)
{
baos.write(buffer, 0, s);
}
String data = ISOUtil.hexString(baos.toByteArray());
result = data.substring(0, baos.toByteArray().length); // response message
Log.d(TAG, "::::Response " + result);
}
return result;
}
あなたはメインスレッドから、または他の 'Thread'でいることをしましたか? –
'読書問題があります。どの問題?例外? logcatを投稿してください。 – greenapps
ByteArrayOutputStreamを使用しないでください。あなたはそんなに多くのメモリを使用しています。バイトをFileOutputStreamに書き込むほうがよい。 – greenapps