我正在编写一个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()) ;
}
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)
谢谢,汤姆
答案 0 :(得分:1)
尝试关闭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");
这实际上可能是您的阅读不起作用而不是上述原因的原因。