FileNotFoundException, o arquivo existe Java [closed]
Eu tenho um problema muito estranho, estou tentando tocar alguns MP3s com algum código Java e JLayer. Eu tenho uma configuração de método para gerar o caminho do arquivo, mas está me dando muita dor. Aqui está a declaração de retorno (e todo o código envolvido no método):
private static String findSoundFile(String numSeq)
{
return "file:///Users/user/Desktop/FinishedPhone/" + numSeq + ".mp3"
}
Eu tenho um conjunto de talvez ~ 150 arquivos mp3, todos chamados 1.mp3, 2.mp3 etc. Eles vão até cerca de 156 (há alguns em falta no meio). Com base na entrada do usuário de um código de 3 dígitos, ele reproduz um dos sons. Este código funcionasem falhas para qualquer coisa entre 1-99, é quando você chega a 100 onde ele pára de funcionar. Quando o usuário dá um soco em 100 ou 110 ou o que você tem, o Java lança um FileNotFoundException. Eu garanto que o arquivo está lá. Aqui está o código que usa o caminho de arquivo retornado por findSoundFile:
public static void processNumberSequence(String numSeq) throws IOException
{
if (numSeq != "")
{
String soundLoc = findSoundFile(numSeq);
File file = new File(soundLoc);
System.out.println("System can read: " + file.canRead());
System.out.println(soundLoc);
SoundPlayer soundToPlay = new SoundPlayer(soundLoc);
soundToPlay.play();
}
}
Fica mais estranho quando eu preencho o espaço que o numSeq deveria preencher, assim:
private static String findSoundFile(String numSeq)
{
return "file:///Users/user/Desktop/FinishedPhone/110.mp3";
}
O código acima, funciona bem, reproduz o som sem desligar. Qualquer idéia seria muito apreciada e, por favor, pergunte se há alguma confusão.
O stacktrace:
java.io.FileNotFoundException: /Users/user/Desktop/FinishedPhone/111.mp3 (No such file or directory)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:120)
at java.io.FileInputStream.<init>(FileInputStream.java:79)
at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:70)
at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:161)
at java.net.URL.openStream(URL.java:1010)
at SoundPlayer.play(SoundPlayer.java:26)
at SerialProcessor.processNumberSequence(SerialProcessor.java:37)
at SerialTest.serialEvent(SerialTest.java:98)
at gnu.io.RXTXPort.sendEvent(RXTXPort.java:732)
at gnu.io.RXTXPort.eventLoop(Native Method)
at gnu.io.RXTXPort$MonitorThread.run(RXTXPort.java:1575)
ls -l de um dos arquivos:
-rw-r--rw- 1 user staff 432923 Feb 27 14:15 /Users/user/Desktop/FinishedPhone/111.mp3
ls -l para um menos de 100:
-rw-r--rw- 1 user staff 480570 Feb 25 20:43 /Users/user/Desktop/FinishedPhone/99.mp3