android - 从 FTP 服务器访问文本文件,Android 开发

标签 android ftp

我正在尝试访问 Android 中 FTP 服务器上的文件。

出于某种原因,每当我导入任何外部 jar(例如 commons-net 或 ftp4j)时,我的应用程序都会在运行时崩溃。我已经通过注释掉所有引用 jars 的行来验证这一点,并且应用程序运行正常。

我想访问 FTP 服务器上文本文件中的数据并将其打印到 TextView。我整天都被困在这上面。我该如何解决? list 中包含的权限是互联网和外部存储。

package com.testing.pack;

import java.io.BufferedInputStream;

import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.http.client.HttpClient;
import android.app.Activity;
import android.graphics.Typeface;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.TextView;

public class TestingActivity extends Activity implements OnClickListener {
    /** Called when the activity is first created. */

    TextView tv;
    Button go;
    HttpClient client;
    FTPClient ftp;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.main);
        tv = (TextView) findViewById(R.id.tvTry);
        Typeface face = Typeface.createFromAsset(getAssets(),
                "Roboto-LightItalic.ttf");
        tv.setTypeface(face);
        go = (Button) findViewById(R.id.bGO);
        go.setOnClickListener(this);

        try {
                        //Attempt using commons-net


            FTPClient ftpClient = new FTPClient();
            ftpClient.connect("ftp://........./");
            ftpClient.login(".......", ".....");
            ftpClient.changeWorkingDirectory("......");
            ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
            BufferedInputStream buffIn=null;
            buffIn=new BufferedInputStream(new FileInputStream(file));
            ftpClient.enterLocalPassiveMode();
            ftpClient.storeFile("test.txt", buffIn);
            buffIn.close();
            ftpClient.logout();
            ftpClient.disconnect();

                        //Attempt using ftp4j

                        //FTPClient ftp = new FTPClient();
            //ftp.connect("........");
            //ftp.login(".......", ".....");
            //ftp.changeDirectoryUp();
            //ftp.changeDirectory(".....");
            //ftp.changeDirectory("public_ftp");
            //ftp.download("test.txt", new java.io.File("....."));
        } catch (Exception e) {

        }

    }

    @Override
    public void onClick(View arg0) {
        // TODO Auto-generated method stub
        getData ex = new getData();
        try {
            tv.setText(ex.getInternetData());
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

最佳答案

您是否使用 Eclipse 添加 jars?而是创建一个 libs 文件夹并将 jars 复制到其中。

这是一个类似的问题:How can I use external JARs in an Android project?

关于android - 从 FTP 服务器访问文本文件,Android 开发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10950300/

相关文章:

android - AsyncTask 与新线程

安卓 : how to make sure AlarmManager are not crash first AlarmManager are haven't finish execute?

android - getSkuDetails() 返回 0 项返回空数组 DETAILS_LIST

perl - HTTP::Tiny 类似 FTP 处理

android - android中的视频流问题

java - 在 Android 中转为横向或纵向时媒体播放器会重新加载

windows - 200 端口命令成功。考虑使用 PASV。 425 建立连接失败

c# - 如何使用 foreach() 和 ftpwebrequest 优化我的 FTP 下载?

list - FTP LIST命令返回的数据格式?

security - 什么是练习缓冲区溢出的好程序(仅用于教育目的)?