[RESOLVIDO]Download via FTP com Android

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 :slight_smile:

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.