在这里,我有一个 j2me 应用程序,我需要从输出流传输或保存实时数据。
如果我使用一个线程将数据写入流,并且在写入某些无字节后,另一个线程从中获取一个字节数组,保存或传输它并将流重置为零会发生什么。
即对其调用reset ..这实际上等于使用流作为固定大小的缓冲区..
这里的限制是我可能无法为此目的使用 byteBuffer 对象
这会使流无效,因为第一个线程仍在连接它吗?
在这里,我有一个 j2me 应用程序,我需要从输出流传输或保存实时数据。
如果我使用一个线程将数据写入流,并且在写入某些无字节后,另一个线程从中获取一个字节数组,保存或传输它并将流重置为零会发生什么。
即对其调用reset ..这实际上等于使用流作为固定大小的缓冲区..
这里的限制是我可能无法为此目的使用 byteBuffer 对象
这会使流无效,因为第一个线程仍在连接它吗?
我假设您将使用java.io.ByteArrayOutputStream
class,它是CLDC 1.0
J2ME 标准的一部分。
CLDC 1.0 没有说明ByteArrayOutputStream
.
但是如果你看一下实现ByteArrayOutputStream
,所有需要的方法似乎是synchronized
:
public synchronized byte toByteArray()[] { ... }
public synchronized void reset() { ... }
public synchronized void write(byte b[], int off, int len) { ... }
如果您可以访问 J2ME 类的源代码。你可以仔细检查一下。
如果方法是同步的,那么按照您的计划使用流应该是安全的。