作者:mingjava 文章来源:http://www.j2medev.com/Article/ShowArticle.asp?ArticleID=74
曾经在CSDN看到多位网友问图片传输的问题,因此决定写篇文章讲述一个问题,最后通过实例演示如何解决这个问题并提供源代码。如果你对联网中的操作以及多线程还不熟悉那么请参考本站如下文章。
编写高效友好的多线程J2ME联网应用
开发J2ME低级联网应用
开发J2ME联网应用程序
其实传输图片和传输其他的数据没有什么区别只是我们选择怎样的处理方法,如果我们传输java基本数据类型或者String那么比较容易,直接writeInt() readInt()等方法就可以了。如果是传输一整个对象比如一个人的信息,那么可以使用序列化把它拆开为按照一定的顺序传输多个java的基本类型和String。至于图片显得要特殊一点,因为它是二进制的文件,Java中的InputStream提供了方法来读取二进制文件,如果你对此方面的知识不熟悉请参考使用Java操作二进制文件。
在我们联网的时候同样还是要在另外一个线程进行,为了提高效率我们使用wait()和notify()来调度线程,线程启动后会进入wait()的状态,因为我们在midlet对象上调用了wait()。当用户按了Connect Command后我们调用midlet.notify()来让线程继续运行。
if (cmd == connCommand)
{
synchronized (this)
{
notify();
}
} else if (cmd == exitCommand)
{
exitMIDlet();
}
synchronized (midlet)
{
try
{
midlet.wait();
} catch (InterruptedException e)
{
e.printStackTrace();
}
}
System.out.println("connect to server...");