【问题标题】:(J2me) Stream as a buffer?(J2me) 流作为缓冲区?
【发布时间】:2012-06-28 10:11:17
【问题描述】:

这里我有一个 j2me 应用程序,我需要从输出流传输或保存实时数据。

如果我使用一个线程将数据写入流,并且在写入某些字节后,另一个线程从中获取一个字节数组,保存或传输它并将流重置为零会发生什么..

即在其上调用reset ..这实际上相当于使用流作为固定大小的缓冲区..

这里的限制是我可能无法将 byteBuffer 对象用于此目的

这会使流无效,因为第一个线程仍在连接它吗?

【问题讨论】:

  • 我只懂你的第一句话。尝试改写你的问题;非常不清楚。

标签: java java-me buffer outputstream


【解决方案1】:

我假设您将使用 java.io.ByteArrayOutputStream 类,它是 J2ME 的 CLDC 1.0 标准的一部分。

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 类的源代码。你可以仔细检查一下。

如果方法是同步的,那么按照您的计划使用流应该是安全的。

【讨论】:

    猜你喜欢
    • 2011-11-14
    • 2021-10-06
    • 1970-01-01
    • 1970-01-01
    • 2014-04-02
    • 1970-01-01
    • 1970-01-01
    • 2019-11-30
    • 1970-01-01
    相关资源
    最近更新 更多