以下是我的代码中的部分:
就是监听的问题
public void serialEvent(SerialPortEvent event) {
switch(event.getEventType()) {
case SerialPortEvent.OUTPUT_BUFFER_EMPTY:break;
case SerialPortEvent.DATA_AVAILABLE:
sb=new StringBuffer();
StringBuffer sb2=new StringBuffer();
String str=new String();
byte[] readBuffer=new byte[2];
int i=0;
mystr="";//这是全局变量
try {
while (inputStream.available()>0) {
i=inputStream.read(readBuffer); //读取数据
if(i==-1)
{
inputStream.close();
break;
}
else
{
mystr=mystr+ new String(readBuffer);
}
}
readinfo2(mystr);//这是一个方法,自己写的,用于输出
mystr="";//清空
}
catch (IOException e) { }
finally
{
inputStream.close(); //关闭串口
}
break;
}为何输出的代码会弄出错
就是监听的问题
public void serialEvent(SerialPortEvent event) {
switch(event.getEventType()) {
case SerialPortEvent.OUTPUT_BUFFER_EMPTY:break;
case SerialPortEvent.DATA_AVAILABLE:
sb=new StringBuffer();
StringBuffer sb2=new StringBuffer();
String str=new String();
byte[] readBuffer=new byte[2];
int i=0;
mystr="";//这是全局变量
try {
while (inputStream.available()>0) {
i=inputStream.read(readBuffer); //读取数据
if(i==-1)
{
inputStream.close();
break;
}
else
{
mystr=mystr+ new String(readBuffer);
}
}
readinfo2(mystr);//这是一个方法,自己写的,用于输出
mystr="";//清空
}
catch (IOException e) { }
finally
{
inputStream.close(); //关闭串口
}
break;
}为何输出的代码会弄出错
解决方案 »
- 200分求XFire异常,很急。顶着有份(可追加)
- 看完Head First Design Pattern后,回头看GoF的Design Patterns还是很头疼。
- GUI问题!
- Config.class.getResource(".").getPath()老是报错
- 怎样自动生成变量名!立刻给分50
- 拖动的Undo问题?
- 为什么ORCALE里的中文读出来都是???
- 我编写的一个applet.其中有socket功能(用jb)。当我用appletview浏览时,可正常显示。可用ie时就出现"exception:com.ms.security.securi
- 高手请进!
- 向数据库插入日期问题
- setStub报告异常是怎么回事?
- 求非二叉树的深度优先遍历算法(急需)
http://www.programmerstudy.com/programme/java/20084/97.html
try {
while (inputStream.available()> 0) {
i=inputStream.read(readBuffer); //读取数据
if(i==-1)
{
inputStream.close();
break;
}
else
{
mystr=mystr+ new String(readBuffer);
}
}
readinfo2(mystr);//这是一个方法,自己写的,用于输出
mystr= " ";//清空
}
catch (IOException e) { }
finally
{
inputStream.close(); //关闭串口
这个里面关闭了两次也有问题
inputStream.close();
break;
}
else
{
mystr=mystr+ new String(readBuffer);
}
这个判断是没有必要,且错误的。如果已经读取完毕,while (inputStream.available()> 0)就可以告诉你了。另外,即使有了上面的判断,也不应该执行inputStream.close();因为后面finally里,无论怎样都要被执行的。