在 Android 上下载文本文件 [重复]

     2023-02-25     82

关键词:

【中文标题】在 Android 上下载文本文件 [重复]【英文标题】:Download a text file on Android [duplicate] 【发布时间】:2013-06-08 14:39:19 【问题描述】:

我需要从服务器下载一个文本文件并将其保存在内存中。然后逐行阅读。 更好的是 - 直接从服务器逐行读取。

编辑:“将其保存在内存中”意味着不将其写入文件。

你会怎么做?

谢谢!

【问题讨论】:

这不是重复的! 【参考方案1】:

impossible 是怎么回事?试试这段代码:请注意,创建文件的 CONTEXT 可能是 Activity/ApplicationContext/etc。

public boolean downloadFile(final String path)
    
        try
        
            URL url = new URL(path);

            URLConnection ucon = url.openConnection();
            ucon.setReadTimeout(5000);
            ucon.setConnectTimeout(10000);

            InputStream is = ucon.getInputStream();
            BufferedInputStream inStream = new BufferedInputStream(is, 1024 * 5);

            File file = new File(CONTEXT.getDir("filesdir", Context.MODE_PRIVATE) + "/yourfile.png");

            if (file.exists())
            
                file.delete();
            
            file.createNewFile();

            FileOutputStream outStream = new FileOutputStream(file);
            byte[] buff = new byte[5 * 1024];

            int len;
            while ((len = inStream.read(buff)) != -1)
            
                outStream.write(buff, 0, len);
            

            outStream.flush();
            outStream.close();
            inStream.close();

        
        catch (Exception e)
        
            e.printStackTrace();
            return false;
        

        return true;
    

这是一个使用活动context的简单文件R/W。

编辑:根据您最近更改的问题,我在这里发布:

试试这段代码:

try 
    // Create a URL for the desired page
    URL url = new URL("ksite.com/thefile.txt");

    // Read all the text returned by the server
    BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
    String str;
    while ((str = in.readLine()) != null) 
        // str is one line of text; readLine() strips the newline character(s)
    
    in.close();
 catch (MalformedURLException e) 
 catch (IOException e) 

这应该可以工作

【讨论】:

但是您正在将其写入文件。这个想法是直接从服务器逐行读取 不,你最初发布的问题说,你需要保存后逐行阅读。你去吧。保存后,您可以随意阅读,逐行或以其他方式阅读。我发布的只是一种读取文件的android方式。您希望如何阅读它取决于您。 抱歉,我可能不够清楚 - 我的意思是不保存到 SD 卡/本地内存。 没关系,看我更新的答案。 不幸的是,这不会删除 .mhtml 文件中的字符,例如:From: X-Snapshot-Version: 1.0【参考方案2】:

试试:

      String line;
      URL url = new URL("myserver.com/myfile.txt");    
      BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));    
      while ((line = in.readLine()) != null) 
          // do something with line
      
      in.close();

【讨论】:

【参考方案3】:

我做到了。只需打开与您的服务器的连接(如果它是 FTP 服务器,只需使用 Apache commons 中的 FTPClient 即可)。将此连接设置为新的AsyncTask<...,...,...>,并将您的连接代码放入doInBackground(...)。 编辑:我是这样做的:

      FileOutputStream fos = activity.openFileOutput("temp.tmp", Context.MODE_PRIVATE);
      System.out.println(activity.getFilesDir().getAbsolutePath());
      client.enterLocalPassiveMode();
      client.changeToParentDirectory();
      client.changeWorkingDirectory("/dsct2c/" + username);
      client.retrieveFile(filename, fos);
      fos.close();
      publishProgress(activity.getString(R.string.toast_file_saved) + " " + filename);



      FileInputStream fis = activity.openFileInput("temp.tmp");
      InputStreamReader isr = new InputStreamReader(fis);
      BufferedReader br = new BufferedReader(isr);

      String line = br.readLine();
      while(line != null)
      
        publishProgress(line);
        System.out.println(line);
        line = br.readLine();
      

【讨论】:

在 Android 上下载文件时未检测到 0 字节文件

】在Android上下载文件时未检测到0字节文件【英文标题】:0-bytefilesnotdetectedwhendownloadingfilesonAndroid【发布时间】:2013-06-2807:21:32【问题描述】:我有一个适用于Android的应用程序,它可以从Internet下载数百个文件。有些文件在下载... 查看详情

无法使用 LibGDX Net 在 Android 上下载 100mb 文件

】无法使用LibGDXNet在Android上下载100mb文件【英文标题】:Can\'tdownloada100mbfileonAndroidwithLibGDXNet【发布时间】:2017-01-2417:45:08【问题描述】:我有一个简单的代码,它向我的外部服务器发送Http请求以下载大小为100mb的.txt文件。较小... 查看详情

在 AsyncTask 或 Service 上下载文件?

...skorService?【发布时间】:2016-11-2218:36:03【问题描述】:在Android上下载的最佳方法是什么。您将使用AsyncTask或Service。我看到几个例子是由两种方法组成的,但最好的方法是什么?【问题讨论】:【参考方案1】:这不是正确的问题... 查看详情

在 Android Studio 中加载一个简单的文本文件

】在AndroidStudio中加载一个简单的文本文件【英文标题】:LoadasimpletextfileinAndroidStudio【发布时间】:2013-05-2503:27:16【问题描述】:使用Google的新AndroidStudioIDE获得了一个全新的项目。我正在尝试使用InputStreamReader加载一个简单的文... 查看详情

在 iOS 上下载失败比在 Android 上更频繁?

】在iOS上下载失败比在Android上更频繁?【英文标题】:DownloadingfailsmuchmorefrequentlyoniOSthanonAndroid?【发布时间】:2012-12-2403:42:57【问题描述】:在我的iOS项目中,我使用NSURLConnection下载文件。我的代码就像http://developer.apple.com/librar... 查看详情

.mp3 在 Android 上下载为 .mpga。这与 MIME 类型有关吗?

】.mp3在Android上下载为.mpga。这与MIME类型有关吗?【英文标题】:.mp3\'sdownloadingas.mpgaonAndroid.IsthistodowithMIMEtypes?【发布时间】:2012-06-2816:45:27【问题描述】:嗨,我希望你们中的一个可以帮助我。我有一个小问题。当使用android股... 查看详情

QQmlApplication未在发行版中加载[重复]

...我创建了一个QQmlApplicationEngine,将一些其他类设置为它的上下文属性,最后加载我的qml文件。最近一切都 查看详情

我可以在 /sdcard 上下载 SQLite 数据库并从我的 Android 应用程序访问它吗?

】我可以在/sdcard上下载SQLite数据库并从我的Android应用程序访问它吗?【英文标题】:CanIdownloadanSQLitedbon/sdcardandaccessitfrommyAndroidapp?【发布时间】:2010-11-0612:17:47【问题描述】:我已经发现无法将文件捆绑在.apk中并将它们放在/sdc... 查看详情

是否可以在 Android 库项目中读取没有上下文引用的原始文本文件

】是否可以在Android库项目中读取没有上下文引用的原始文本文件【英文标题】:IsitpossibletoreadarawtextfilewithoutContextreferenceinanAndroidlibraryproject【发布时间】:2012-04-0822:58:33【问题描述】:我可以将文本文件放在库项目的res\\raw文件... 查看详情

Restkit:在系统上下载文件

】Restkit:在系统上下载文件【英文标题】:Restkit:Downloadafileonsystem【发布时间】:2012-01-0909:01:11【问题描述】:我很难找到如何使用restkit框架下载文件?我有一个webservice(带有base64身份验证),它返回一个文件。当我进行常规... 查看详情

javascript如何在webextension上下载文件(代码片段)

查看详情

需要php脚本在远程服务器上下载文件并保存在本地

】需要php脚本在远程服务器上下载文件并保存在本地【英文标题】:Needphpscripttodownloadafileonaremoteserverandsavelocally【发布时间】:2011-05-2902:24:49【问题描述】:尝试在远程服务器上下载文件并将其保存到本地子目录。以下代码似乎... 查看详情

使用 .NET 在 Autodesk Forge 上下载文件

】使用.NET在AutodeskForge上下载文件【英文标题】:DownloadafileonAutodeskForgeusing.NET【发布时间】:2019-04-2508:09:11【问题描述】:我不确定如何下载存储桶中的对象。与存储桶中上传的文件相比,我目前能够下载的文件的大小要小得多... 查看详情

在android中加载现有数据库[重复]

】在android中加载现有数据库[重复]【英文标题】:Loadingexistingdatabaseinandroid[duplicate]【发布时间】:2012-10-3022:09:49【问题描述】:可能重复:HowtouseanexistingdatabasewithanAndroidapplication我正在Android中做一个项目,我正在尝试将现有数... 查看详情

Android Studio 没有在 Ubuntu 上下载任何 sdk 和工具 [关闭]

】AndroidStudio没有在Ubuntu上下载任何sdk和工具[关闭]【英文标题】:AndroidStudionotdownloadinganysdkandtoolsonUbuntu[closed]【发布时间】:2021-10-1619:05:35【问题描述】:每当我尝试从Sdk-Tools或Android-Studio中的Sdk-Platform下载AndroidSdk时,它只会给... 查看详情

在iOS中下载文件[重复]

】在iOS中下载文件[重复]【英文标题】:DownloadingfilesiniOS[duplicate]【发布时间】:2017-02-1520:36:00【问题描述】:我正在尝试使用Swift下载文件。这是我代码中的下载器类:classDownloaderclassfuncload(URL:URL)letsessionConfig=URLSessionConfiguration.... 查看详情

尝试在 Windows Server 2003 上下载文件时出现 404 错误

】尝试在WindowsServer2003上下载文件时出现404错误【英文标题】:404errorwhentryingtodownloadfileonWindowsServer2003【发布时间】:2013-05-0617:40:27【问题描述】:我正在尝试将.sqlite数据库文件放在我的服务器上,以便用户可以下载它(最终它... 查看详情

如何在github上下载单个文件夹?

作者:cege链接:https://www.zhihu.com/question/25369412/answer/96174755来源:知乎著作权归作者所有,转载请联系作者获得授权。Git1.7.0以后加入了SparseCheckout模式,这使得CheckOut指定文件或者文件夹成为可能。具体实现如下:$mkdirproject_folde... 查看详情