Boa tarde!
Eu tenho um sistema no Android que tudo oque a pessoa fala na TV aparece o texto na tela do Android e agora eu quero colocar a função de baixar esse texto e esse arquivo txt fica em um ftp que é atualizado sempre, ate ok, oque eu não to conseguindo fazer é o download desse arquivo txt e depois salvar ele no sdcard oque eu tenho esta assim:
File root = Environment.getExternalStorageDirectory();
File file= new File(root.getAbsolutePath()+"/teste.txt");
FileOutputStream f = new FileOutputStream(file);
ftp.connect("ftp");
ftp.login("user", "passwd");
ftp.changeWorkingDirectory("/appservers/apache-tomcat-6x/webapps");
Log.e("Log", "Fazendo download");
ftp.setFileType(FTP.ASCII_FILE_TYPE);
ftp.retrieveFile("teste.txt", f);
ftp.disconnect();
view.setText("Pronto");
Oque acontece é que ele cria o teste.txt so que sem nenhum conteudo…
Alguem sabe oque fazer?
Obs* ele não gera nenhum erro
Bem depois de um tempo quebrando a cabeça está resolvido, vou deixar a solução aqui para futuras consultas 
package android.steno.tvtexto;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileReader;
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class TVTextoActivity extends Activity {
FTPClient ftp= new FTPClient();
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button btnDownload = (Button) findViewById(R.id.btnDownload);
final TextView view= (TextView) findViewById(R.id.textView1);
final EditText editText= (EditText) findViewById(R.id.editText1);
btnDownload.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
try {
//Recupera o caminho padrão do SDCARD
File root = Environment.getExternalStorageDirectory();
//Cria arquivo para gravar o texto
File file= new File(root, "/teste.txt");
//Faz a conexão com o servidor ftp
ftp.connect("ftp");
//Autenticação se necessario
ftp.login("user", "passwd");
//Muda o diretorio dentro do ftp
ftp.changeWorkingDirectory("/appservers/apache-tomcat-6x/webapps");
//Faz o download do arquivo passando o nome dele(dentro o servidor) e local onde ele vai ser guardado
ftpDownload("teste.txt", file.getAbsolutePath()+"/"+file.getName());
//Disconecta do ftp
ftp.disconnect();
//Faço a leitura do do arquivo
FileReader fileReader= new FileReader(file);
BufferedReader leitor= new BufferedReader(fileReader);
String linha = null;
//Loop para ler e inserir no editText
while((linha = leitor.readLine()) != null) {
editText.append(linha);
}
//Informo que o procedimento foi finalizado
view.setText("Finalizado");
} catch (Exception e) {
// TODO: handle exception
Log.e("Log", e.getCause().toString());
}
}
});
}
public boolean ftpDownload(String srcFilePath, String desFilePath)
{
boolean status = false;
try {
//Cria o outputStream para ser passado como parametro
FileOutputStream desFileStream = new FileOutputStream(desFilePath);;
//Tipo de arquivo
ftp.setFileType(FTP.BINARY_FILE_TYPE);
//http://commons.apache.org/net/apidocs/org/apache/commons/net/ftp/FTPClient.html#enterLocalActiveMode()
ftp.enterLocalPassiveMode();
//Faz o download do arquivo
status = ftp.retrieveFile(srcFilePath, desFileStream);
//Fecho o output
desFileStream.close();
return status;
} catch (Exception e) {
Log.e("Log", "download falhou");
}
return status;
}
}
[]'s
O detalhe do ftp.enterLocalPassiveMode(); foi fundamental, muito obrigado me ajudou muito aqui !!! Queria saber como descobriu isso.