android 下载服务器的txt文档

主要函数就是下面这个方法

private fun downLoadFile() {
        //文档所在服务器地址
        val url = "http://host099229.79.game3939.com/adArra.txt"

        val filePath = context.getExternalFilesDir(null)
        //下载后文档保存地址
        val outPath = "$filePath/outPath.txt"

        val myURL = URL(url)
        val conn: URLConnection = myURL.openConnection()
        conn.connect()
        val `is`: InputStream = conn.getInputStream() ?: throw RuntimeException("stream is null")
        
        val os: OutputStream = FileOutputStream(outPath)
        val buf = ByteArray(1024)
        val numread = `is`.read(buf)
        os.write(buf, 0, numread)
        `is`.close()
        os.close()
    }

这只是一个简单的例子,还需要进一步完善,例如下载的缓存大小只设置了1024,需要下载大文件的话,则需要反复读取输入流,然后在写入文件。而且为方便演示直接写了固定的rul,实际使用应该把url作为参数写入该函数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Android应用程序中从SFTP服务器下载文件,您可以使用JSch库来实现。以下是一个简单的示例代码片段,演示了如何进行SFTP文件下载: ```java import com.jcraft.jsch.Channel; import com.jcraft.jsch.ChannelSftp; import com.jcraft.jsch.JSch; import com.jcraft.jsch.Session; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; public class SftpDownloader { private static final String HOST = "your_sftp_host"; private static final int PORT = 22; private static final String USERNAME = "your_sftp_username"; private static final String PASSWORD = "your_sftp_password"; private static final String REMOTE_FILE_PATH = "/path/to/remote/file"; private static final String LOCAL_FILE_PATH = "/path/to/local/file"; public static void downloadFile() { JSch ssh = new JSch(); Session session = null; try { session = ssh.getSession(USERNAME, HOST, PORT); session.setPassword(PASSWORD); session.setConfig("StrictHostKeyChecking", "no"); session.connect(); Channel channel = session.openChannel("sftp"); channel.connect(); ChannelSftp sftpChannel = (ChannelSftp) channel; InputStream inputStream = sftpChannel.get(REMOTE_FILE_PATH); OutputStream outputStream = new FileOutputStream(LOCAL_FILE_PATH); byte[] buffer = new byte[1024]; int bytesRead; while ((bytesRead = inputStream.read(buffer)) != -1) { outputStream.write(buffer, 0, bytesRead); } inputStream.close(); outputStream.close(); sftpChannel.disconnect(); channel.disconnect(); session.disconnect(); System.out.println("File downloaded successfully."); } catch (Exception e) { e.printStackTrace(); } } } ``` 请确保将`your_sftp_host`,`your_sftp_username`,`your_sftp_password`,`/path/to/remote/file`和`/path/to/local/file`替换为实际的SFTP服务器主机,用户名,密码以及远程和本地文件的路径。 以上代码将从SFTP服务器下载文件并保存在本地位置。您可以根据您的需求进行调整和修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值