问题描述
我有一个数据采集信息的数据流,就像一个爆管一样进来。 (实际上是其中的 3 个)。
我可以读取数据并将其打印到控制台,不会遗漏任何数据。
我现在正在将数据保存到数据库中,这当然是一个瓶颈。我也以令人印象深刻的速度运行。
积压导致套接字停止接收数据,发送方停止发送数据。程序继续通过缓冲区工作一段时间。
有没有办法获得这个流的缓冲区大小?我想在读取足够的数据后清除缓冲区。
我不确定这是否在套接字、套接字、InputStream 或 InputStreamReader 中。
InputStream inputStream1 = socket1.getInputStream();
InputStreamReader inputStreamReader1 = new InputStreamReader(inputStream1,StandardCharsets.UTF_8);
if (inputStreamReader.ready()) {
recMsg(inputStreamReader,inputStream,(LinkedList) msgFifo); // Get more data
//System.out.print("Got More data: ");
}
public static void recMsg(InputStreamReader inputStreamReader,InputStream inputStream,LinkedList msgFifo) throws IOException {
int x;
int loop = 0;
boolean ready;
while ((x = inputStreamReader.read()) != -1) {
char result = (char)x;
msgFifo.add(x);
loop += 1;
ready = inputStreamReader.ready();
if (loop >= bufferSize * 2) break; //bufferSize is 2048
if(!ready) break;
}
我正在学习 Java,我知道有些代码不是很好。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)