java问题,望高手指点!!!

try{while((char)System.in.read()!='q'&&(char)System.in.read()!='Q'){System.out.printl... try{
while((char)System.in.read()!='q'&&(char)System.in.read()!='Q'){
System.out.println("please input a number of a-d:");
System.out.println("a--play");
System.out.println("b--pause");
System.out.println("c--resume");
System.out.println("d--stop");
//BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
//String nm=br.readLine();
i=(char)System.in.read();
switch(i)
{
case 'a':System.out.print("java-chuancan:");
System.out.println(i);
commandplay = app.DSP_CommandPlay();
break;
case 'b':System.out.print("java-chuancan:");
System.out.println(i);
commandpause=app.DSP_CommandPause();
break;
case 'c':System.out.print("java-chuancan:");
System.out.println(i);
commandresume = app.DSP_CommandRusume();
break;
case 'd':System.out.print("java-chuancan:");
System.out.println(i);
commandstop=app.DSP_CommandStop();
break;
}
/*if(i=='a')///////////////////换成switch()语句#####################
{
System.out.print("java-chuancan:");
System.out.println(i);
commandplay = app.DSP_CommandPlay();
}
else if(i=='b')
{
System.out.print("java-chuancan:");
System.out.println(i);
commandpause=app.DSP_CommandPause();
}
else if(i=='c')
{
System.out.print("java-chuancan:");
System.out.println(i);
commandresume = app.DSP_CommandRusume();
}
else if(i=='d')
commandstop=app.DSP_CommandStop();
*/
}
}
catch(IOException e)
{
System.out.println("string input error!"+e);
}
以上代码是接收在键盘上输入一个字符来控制文件播放器播放文件的,输入a,b,c,d中不同的字符执行不同的命令,我刚开始用if-else格式老出错,随后改为switch()格式,但还是执行起来有故障,例如输入'a'第一次没有执行case后面的命令而是回到while()循环,第二次输入'a'才执行,或者是第三次输入'a'才执行,其他字母有类是情况,'q'输入的时候状态也不稳定,
另外我用while((char)System.in.read()!='q'&&(char)System.in.read()!='Q')的时候视频播放一边退出后,再次运行视频可以正常,但改为while((char)System.in.read()!='q')后,视频运行一次正常退出后,再次运行视频就不能播放了,不知为何?
关键我用的是jdk1.4,好像不能用Scanner类,不知对否?
展开
 我来答
sssuuunnnhhh
2010-10-16 · 超过21用户采纳过TA的回答
知道答主
回答量:94
采纳率:0%
帮助的人:62.1万
展开全部
用IO操作
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
山海关01011
2010-10-17
知道答主
回答量:3
采纳率:0%
帮助的人:0
展开全部
求解
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pengzai0391
2010-10-15 · 超过17用户采纳过TA的回答
知道答主
回答量:67
采纳率:0%
帮助的人:45.2万
展开全部
找到问题了,把你的 i=(char)System.in.read();
换成 Scanner sc=new Scanner(System.in);

char i=(char) sc.next().charAt(0);
这样你下面的程序就可执行了。

如果你的是JDK1.4,可以考虑这样实现,先写一个方法,用来读取键盘命令,然后根据这个命令来执行各种操作。
//读取键盘命令的方法
public static char getCommand(){
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String nm;
try {
nm = br.readLine();

return nm.charAt(0);
} catch (IOException e) {
System.out.println(e.toString()+"很抱歉!");
return 'q';
}

}
public static void main(String[] args) {

char i= getCommand();//读取键盘命令
while(i!='q'&&i!='Q'){
System.out.println("please input a number of a-d:");
System.out.println("a--play");
System.out.println("b--pause");
System.out.println("c--resume");
System.out.println("d--stop");

i= getCommand();//再次读取,用来判读是播放还是停止等

switch(i)
{
case 'a':System.out.print("java-chuancan:");
System.out.println(i);
// commandplay = app.DSP_CommandPlay();
break;
case 'b':System.out.print("java-chuancan:");
System.out.println(i);
commandpause=app.DSP_CommandPause();
break;
case 'c':System.out.print("java-chuancan:");
System.out.println(i);
commandresume = app.DSP_CommandRusume();
break;
case 'd':System.out.print("java-chuancan:");
System.out.println(i);
commandstop=app.DSP_CommandStop();
break;
}
/*if(i=='a')///////////////////换成switch()语句#####################
{
System.out.print("java-chuancan:");
System.out.println(i);
commandplay = app.DSP_CommandPlay();
}
else if(i=='b')
{
System.out.print("java-chuancan:");
System.out.println(i);
commandpause=app.DSP_CommandPause();
}
else if(i=='c')
{
System.out.print("java-chuancan:");
System.out.println(i);
commandresume = app.DSP_CommandRusume();
}
else if(i=='d')
commandstop=app.DSP_CommandStop();
*/
}

}

参考资料: JAVA API

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式