Android: нет такого имени файла или каталога - PullRequest
0 голосов
/ 29 февраля 2012

Я пишу приложение для Android, которое должно скачивать файл с FTP-сервера. Кажется, что я могу прочитать файл с FTP-сервера без проблем, но когда я пытаюсь открыть его, приложение выдает следующую ошибку: нет такого имени файла или каталога.

код:

FTPClient ftp = new FTPClient  ;  // The ftpclient of apache commons
// all the code for connecting to the server 

FileOutputStream fOut  = openFileOutput("ipfile.text" , Context.MODE_WORLD_WRITEABLE) ; 
    ftp.retrieveFile("ip.text" , fOut) ; 



    Log.v("As" , "Read file with succes from drivehq") ;

    String helpStr = "ERROR" ; 
    byte[] inputBuffer = new byte [1024] ; 

     try{
         FileInputStream fis = new FileInputStream("/data/data/ipfile.text") ;
         fis.read(inputBuffer) ;
         fis.close() ; 
         helpStr = new String (inputBuffer) ; 
         Log.v("As" , "Read file from " + helpStr) ; 



     }
     catch(Exception e) {
         Log.v("As" ," Unable to read the ip-file " + e.getMessage()) ;  
     }

The Logcat:

 02-28 21:31:38.741: V/As(3992): Logged on with success to drivehq
02-28 21:31:38.911: V/As(3992): Changed working directory on drivehq
02-28 21:31:39.972: V/As(3992): Read file with succes from drivehq
02-28 21:31:39.972: V/As(3992):  Unable to read the ip-file  ipfile.text (No such file or directory)

Спасибо, Том

1 Ответ

1 голос
/ 29 февраля 2012

Попробуйте закрыть FileOutputStream "fOut"

Вероятно, поток заблокировал файл, из-за чего вы не сможете прочитать файл, несмотря на то, что он был создан.

FileOutputStream fOut  = openFileOutput("ipfile.text" , Context.MODE_WORLD_WRITEABLE) ; 
ftp.retrieveFile("ip.text" , fOut) ; 
fOut.flush();
fOut.close();

Кроме того, вы должны открывать свой файл аналогично тому, как вы открыли выходной файл, используя

FileInputStream fis = openFileOutput("ipfile.text");

Это может быть причиной того, что ваше чтение не работает, а непричина выше.

...