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类,不知对否? 展开
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类,不知对否? 展开
3个回答
展开全部
用IO操作
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
找到问题了,把你的 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();
*/
}
}
换成 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
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询