0

私はいくつかのファイルを作成し、それらをディレクトリに入れて、それを読んで受信者に送るプログラムを持っています。ファイルを送信するたびに が削除されます。はディレクトリからファイルを読み取ることができません

java.io.FileNotFoundException: UBX_MSG.bin (The system cannot find the file specified)

私は、彼らが実際に存在するかどうかを確認ファイラと方法を読むたびに: は、しかし、ファイルの最初のパックした後、プログラムの他のファイルを読み、私はこのエラーを取得していますそれぞれの新しいファイルのカントを送信取得します常にtrueを返します。

この問題については、どなたでも気にすることができますか? ご協力いただければ幸いです。ありがとうございました。 ここに私の機能です、1つはファイルを読み、1つはそれを送信しています。

public void push2rec (File[] LOF){ 
    try {   
     for (File f : LOF){ 
      System.out.println(f.exists()); 
      byte[] rd = read(f.getName()); 
      SP.writeBytes(rd); 
      f.delete(); 
     } 
    } 
    catch (SerialPortException ex) {System.out.println(ex);} 
} 

public static byte[] read(String name){ 
    File file = new File(name);  
    byte[] bytes = new byte[(int) file.length()]; 
    try { 
     FileInputStream inputStream = new FileInputStream(file); 
     inputStream.read(bytes); 
     inputStream.close(); 
    } 
    catch (FileNotFoundException ex) {System.out.println(ex);} 
    catch (IOException ex) {System.out.println(ex);} 

    return bytes; 
} 
+0

'f'は誤ってディレクトリになっている可能性はありますか? 'isFile()'を使って – Idos

+0

を確認することはできますが、そうは思いません。私は 'f.canRead()'もチェックし、結果はまだ真です。チェックしただけで、 'isFile()'に対して真を返します。 –

+0

デバッガでコードをステップ実行します。 – RAnders00

答えて

2

f.getName()は、パスなしのファイル名だけを返します。 f.getAbsolutePath()を使用します。

+0

はうまくいくようです。ありがとうございました –

関連する問題