关键词:
【中文标题】在 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:试试:
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... 查看详情