我已经为我的声音类创建了一个用户界面。看起来它应该工作正常,因为声音类工作得很好。我不确定为什么,但是当我尝试运行READ命令时,出现错误,指出不存在此类文件或目录。该文件确实存在,并且与程序位于同一文件夹中。这是代码:
public class SoundUI
{
public static void main(String[] args){
Scanner input = new Scanner(System.in);
Sound s = new Sound();
final String MENU = "R)ead , W)rite , B)ackwards , L)engthen , S)horten , I)ncrease Vol. ," +
"D)ecrease Vol. , Q)uit";
char cmd = ' ';
System.out.println(MENU);
//User interface commands for sound
do{
cmd = input.next().charAt(0);
if(cmd == 'R'){ //read
System.out.println("Enter file name with quotes around it");
String fileName = input.next();
s.wavRead(fileName);
System.out.println(MENU);
cmd = input.next().charAt(0);
}
else if(cmd == 'W'){ //save
System.out.println("Name of file you want to save as");
String fileName = input.next();
s.wavSave(fileName);
System.out.println(MENU);
cmd = input.next().charAt(0);
}
else if(cmd == 'B'){ //reverse
s.reverse();
System.out.println(MENU);
cmd = input.next().charAt(0);
}
else if(cmd == 'L'){ //lengthen
s.lengthen();
System.out.println(MENU);
cmd = input.next().charAt(0);
}
else if(cmd == 'S'){ //shorten
s.shorten();
System.out.println(MENU);
cmd = input.next().charAt(0);
}
else if(cmd == 'I'){ //increase volume
System.out.println("Enter percent");
double percent = input.nextDouble();
s.increaseVol(percent);
System.out.println(MENU);
cmd = input.next().charAt(0);
}
else if(cmd == 'D'){ //decrease volume
System.out.println("Enter percent");
double percent = input.nextDouble();
s.reduceVol(percent);
System.out.println(MENU);
cmd = input.next().charAt(0);
}
} while(cmd !='Q'); //quit
}
}
代码必须位于 src 文件夹的顶部。您可以使用以下代码知道代码正在查看哪个目录: System.out.println(new File(".").getAbsoluteFile());
首先 - 写出这一行后面的文件名变量中到底包含的内容。
String fileName = input.next();
然后检查 s.wavRead 方法中发生的情况。顺便说一句,声音类从何而来?是你的课吗?如果是,请调试 wavRead 方法并检查那里发生了什么。