Articles of inputstream

将文件复制到assets文件夹

搜索1小时后,我找不到解决问题的方法。 我想将文件从sdcard移动到assets文件夹,并覆盖assets文件夹中的现有文件(两个文件都是sqlite数据库,同名,数据略有不同) ??

Android应用程序以安全的方式从服务器检索数据

显然我不是android或java专家。 我想在Android应用程序中执行的操作是从服务器加载数据。 我已经开始工作这部分并且附带了源代码。 但我想以一种安全的方式做到这一点。 作为第一步,而不是http://thisismyurl.com/a.php?action=get我想用这样的用户名/密码来做: http://username:password@thisismyurl.com/a.php?action=get我该怎么办? 我应该只将用户名和密码部分添加到url吗? 让我说我已经完成了这将不会有任何用处,因为有人可以打开apk并反编译源代码并获取url和用户名/密码。 那么有一种真正安全的方法吗? 我希望我能在这里得到理解。 String url = “http://thisismyurl.com/a.php?action=get”; String result = Web.executeWeb(url); public class Web { public static String executeWeb(final String url) { final StringBuilder sb = new StringBuilder(); Thread thread = new Thread(new Runnable() { public void run() { try { InputStream is = (InputStream) new URL(url).getContent(); BufferedReader […]

我如何在Volley Library中获得Inpustream作为响应

我在应用程序中使用Volley库。 在onresponse listener中我需要InputStream作为响应 我怎么得到它?

从InputStream读取时发生IOException

我在从Android平台上的InputStream读取时遇到了一个奇怪的问题。 我不确定这是Android特定的问题,还是我一般做错的事情。 唯一针对Android的是这个电话: InputStream is = getResources().openRawResource(R.raw.myfile); 这将从Android资产返回文件的InputStream 。 无论如何,这是我遇到问题的地方: bytes[] buffer = new bytes[2]; is.read(buffer); 当read()执行时抛出IOException 。 奇怪的是,如果我执行两个连续的单字节读取(或任意数量的单字节读取),则没有exception。 例如,这有效: byte buffer; buffer = (byte)buffer.read(); buffer = (byte)buffer.read(); 任何想法为什么两个连续的单字节读取工作,但一次调用同时读取两个引发exception? InputStream看起来很好…… is.available()返回超过一百万字节(应该如此)。 堆栈跟踪在InputStream.read()之前显示这些行: java.io.IOException at android.content.res.AssetManager.readAsset(Native Method) at android.content.res.AssetManager.access$800(AssetManager.java:36) at android.content.res.AssetManager$AssetInputStream.read(AssetManager.java:542) 将缓冲区大小更改为单个字节仍会引发错误。 看起来只有在读入字节数组时才会引发exception。 如果我将文件截断为100,000字节(文件最初为:1,917,408字节),它可以正常工作。 超过一定大小的文件是否有问题? 任何帮助表示赞赏! 谢谢!

你如何在MediaPlayer上玩Android InputStream?

所以我的资源文件夹中有一个小的音频文件,我想打开一个InputStream写入缓冲区,然后写入临时文件,然后打开MediaPlayer播放该临时文件。 问题是,当媒体播放器点击mp.Prepare()时,它不播放并且永远不会到达吐司。 有没有人曾经这样做过? public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); InputStream str; try { str = this.getAssets().open(“onestop.mid”); Toast.makeText(this, “Successful Input Stream Opened.”, Toast.LENGTH_SHORT).show(); takeInputStream(str); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }//end on create public void takeInputStream(InputStream stream) throws IOException { //fileBeingBuffered = (FileInputStream) stream; //Toast.makeText(this, “sucessful stream conversion.”, Toast.LENGTH_SHORT).show(); […]

如何写一个潜在的巨大InputStream到文件?

我有一个返回字节数组的API调用。 我当前将结果流式传输到字节数组,然后确保校验和匹配,然后将ByteArrayOutputStream写入File。 代码是这样的,它运行得很好。 String path = “file.txt”; ByteArrayOutputStream byteBuffer = new ByteArrayOutputStream(); int bufferSize = 1024; byte[] buffer = new byte[bufferSize]; int len = 0; while ((len = inputStream.read(buffer)) != -1) { byteBuffer.write(buffer, 0, len); } FileOutputStream stream = new FileOutputStream(path); stream.write(byteBuffer.toByteArray()); 我担心输入流的结果可能大于android中的堆大小,如果整个字节数组在内存中,我可能会得到OutOfMemoryexception。 将inputStream写入文件块的最优雅方法是什么,这样字节数组永远不会大于堆大小?

Android openRawResource()不适用于drawable

我正在尝试通过这样做来创建输入流 InputStream is = (InputStream) getResources().openRawResource(R.drawable.image1); 但是我遇到了关于我的可绘制文件(R.drawable.image1)的错误“原始types的预期资源”。 image1是一个png,位于我的res / drawable文件夹中。 有任何想法吗???

如何在Android内容提供商中存储大blob?

我有一些大文件(图像和video),我需要存储在内容提供商。 android文档表明…… 如果您公开的字节数据太大而无法放入表本身 – 例如大型位图文件 – 向客户端公开数据的字段实际上应该包含content:URI字符串。 这是允许客户端访问数据文件的字段。 该记录还应该有另一个名为“_data”的字段,该字段列出设备上该文件的确切文件路径。 此字段不是由客户端读取,而是由ContentResolver读取。 客户端将在面向用户的字段上调用ContentResolver.openInputStream(),该字段包含项目的URI。 ContentResolver将为该记录请求“_data”字段,并且因为它具有比客户端更高的权限,所以它应该能够直接访问该文件并将该文件的读取包装器返回给客户端。 – http://developer.android.com/guide/topics/providers/content-providers.html#creating 我找一个例子有些困难。 特别是我希望在ImageView的上下文中使用位图。 考虑以下代码准代码(它不起作用)…… ImageView iv = …. String iconUri = cursor.getString(cursor.getColumnIndex(Table.ICON)); iv.setImageURI(Uri.parse(iconUri)); 意见/问题… 如何正确重建存储/恢复的uri? (这是表格中的文字) setImageURI实现使用内容解析openInputStream,所以这应该工作。 String scheme = mUri.getScheme(); … } else if (ContentResolver.SCHEME_CONTENT.equals(scheme) || ContentResolver.SCHEME_FILE.equals(scheme)) { try { d = Drawable.createFromStream( mContext.getContentResolver().openInputStream(mUri), null); –frameworks /碱/核心/ JAVA /机器人/插件/ ImageView.java 我搞定了。 […]

Android版本> 2.3上的FileNotFoundException

我尝试在手机上将文件下载到SD卡。 在Android 2.1,2.2和2.3上,一切都按预期工作,但在Android 4.0(在模拟器和我的Galaxy Nexus上测试)它会抛出FileNotFoundException 。 堆栈跟踪: 02-27 21:49:06.733: W/System.err(27648): java.io.FileNotFoundException: http://www.wdr.de/wdrlive/media/wdr5.m3u 02-27 21:49:06.733: W/System.err(27648): at libcore.net.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:177) 02-27 21:49:06.733: W/System.err(27648): at de.arvidg.test.StartActivity$9.run(StartActivity.java:833) 02-27 21:49:06.733: W/System.err(27648): at java.lang.Thread.run(Thread.java:856) 我下载文件的方法: downloadFile(“http://www.wdr.de/wdrlive/media/wdr5.m3u”); public void downloadFile(final String fileUrl) { new Thread(new Runnable() { @Override public void run() { try { URL url = new URL(fileUrl); HttpURLConnection urlConnection = (HttpURLConnection) […]

智能手机上的文件读取性能:内部存储与SD卡与PC硬盘的比较

我的Android应用程序将使用大而大的文件(即大小在10MB到2GB之间)。 我一直想知道智能手机使用什么硬件来稳定存储,以及软件(文件读取/搜索)注意事项是否与PC硬盘类似。 我试图find有关硬件的信息并且有一些关于它的图片(内部存储,SD卡),但我检查的所有来源都不是全面和/或具体的。 我的(相互关联的)问题是: 在阅读“现代”智能手机(例如Android 2.2手机)上的大文件时,我必须考虑哪些主要差异,与使用PC的Java应用程序做同样的事情相比? (在磁盘搜索/读取性能方面;显然,手机RAM比PC小,所以在缓冲区等情况下必须考虑到这一点) 智能手机中使用的稳定存储硬件与PC硬盘之间的(相关)主要区别是什么? (我知道这是一个非常广泛的问题,所以我甚至欣赏这里非常简短的答案以及可能的一些可靠的外部URL) 在InputStream读取和搜索(skipBytes)方面,使用内部存储和SD卡之间是否存在差异(例如在Android上)(我故意不写“外部存储”,因为它不一定是每个SD卡上的SD卡设备)? SD卡速度慢吗? 例如,我想从2GB文件中读取2MB数据,这个2MB数据分布在文件的许多不同/远端部分。 所有偏移都是已知的,因此我创建偏移的升序,然后使用BufferedInputStream.read() (例如在DataInputStream )来读取它们(并使用skipBytes()在必要时进行搜索)。 因此,在底层文件系统中,这可能需要“遍历”整个2GB文件。 (例如,Android在需要时使用linux函数在文件中进行搜索。)然而,正在寻求像PC硬盘一样高效吗? 在寻求效率方面,SD卡与内部存储有何关系? 什么是典型的数据读取速度? (智能手机内部存储与SD卡与PC非SSD硬盘相比) 我知道我的具体应用的基准测试是必须的,但我也欢迎在这个问题上进行理论上的澄清。 重要提示 :当我问“……正在寻求与PC硬盘一样高效吗?”时,我(不)只是指绝对值,而是它的机制 。 也就是说,如果它基于相同的逻辑原理工作(=尽可能跳过大部分),或者存在一些缺点(例如,在SD卡上不能进行这种“基于跳过的”搜索,因此跳过更多 – – 即非比例 – 在智能手机硬件上比在PC硬盘上无用。