Articles of inputstream

Android – 从网站下载图片,保存到内部私人应用程序的内存,显示列表项

我想要做的是这样的:我想我的应用程序从互联网上下载一个图像,并将其保存到手机的内部存储器的应用程序私有位置。 如果没有图像可用于列表项目(即它不能在互联网上find),我想要一个默认的占位符图像显示。 这是我在list_item_row.xml文件中定义的默认图像。 在我的ListActivity文件中,我调用了一个我写的CustomCursorAdapter类的实例。 它在CustomCursorAdapter中遍历所有列表项,并定义需要将哪些内容映射到视图,包括通过尝试从内部内存读取图像文件。 我已经看到了这个问题上的几个问题,但这些例子要么是特定于外部手机内存(如SDCard),涉及保存string而不是图像,或涉及使用Bitmap.CompressFormat减less文件的分辨率(这是不必要的我的情况,因为这些图像将是小分辨率的小缩略图)。 试图拼凑每个例子中的代码一直是困难的,因此我问我的具体例子。 目前,我相信我已经写了有效的代码,但没有图像显示我的列表项目,包括默认的占位符图像。 我不知道这个问题是由无效的下载/保存代码,还是无效的读取代码造成的 – 这不利于我不知道如何检查内部存储器来查看图像是否存在。 无论如何,这是我的代码。 任何帮助将不胜感激。 ProductUtils.java public static String productLookup(String productID, Context c) throws IOException { URL url = new URL("http://www.samplewebsite.com/" + productID + ".jpg"); URLConnection connection = url.openConnection(); InputStream input = connection.getInputStream(); FileOutputStream output = c.openFileOutput(productID + "-thumbnail.jpg", Context.MODE_PRIVATE); byte[] data = new byte[1024]; output.write(data); output.flush(); […]

如何从JsonParser(Jackson Json)获取底层string

通过文档和源代码看,我没有看到一个明确的方式来做到这一点。 好奇,如果我失去了一些东西。 假设我从服务器响应收到一个InputStream。 我从这个InputStream创build一个JsonParser。 预计服务器响应是包含有效json的文本,例如: {"iamValidJson":"yay"} 但是,如果响应最终是无效的json或者根本不是json,例如: Some text that is not json JsonParser将最终抛出exception。 在这种情况下,我希望能够从JsonParser中提取底层的无效文本“ Some text that is not json ”,因此可以用于其他目的。 我不能将它从InputStream中提取出来,因为它不支持重置,并且JsonParser的创build会消耗它。 有没有办法做到这一点?

HttpUrlConnection.getInputStream在Android中返回空stream

我使用HttpUrlConnection向服务器发出GET请求。 连接后: 我得到的答复编号是:200 我收到回复消息:OK 我得到inputstream,没有抛出exception,但: 在一个独立的程序中,我得到了正如预期的那样: {“name”:“我的名字”,“生日”:“01/01/1970”,“id”:“100002215110084”} 在android活动中,stream是空的(available()== 0),因此我不能得到任何文本。 任何提示或跟踪? 谢谢。 编辑:这里是代码 请注意:我使用import java.net.HttpURLConnection; 这是标准的http Java库。 我不想使用任何其他外部库 。 事实上,我在android中使用库中的httpclient有问题(他们的一些匿名.class不能被apk编译器使用)。 那么,代码: URLConnection theConnection; theConnection = new URL("www.example.com?query=value").openConnection(); theConnection.setRequestProperty("Accept-Charset", "UTF-8"); HttpURLConnection httpConn = (HttpURLConnection) theConnection; int responseCode = httpConn.getResponseCode(); String responseMessage = httpConn.getResponseMessage(); InputStream is = null; if (responseCode >= 400) { is = httpConn.getErrorStream(); } else […]

如何获取位图信息,然后从internet-inputStream解码位图?

背景 假设我有一个来自某个图像文件的互联网的inputStream。 我希望获得关于图像文件的信息,然后才解码它。 它对于多种用途非常有用,例如缩减采样以及在显示图像之前预览信息。 问题 我试图通过用BufferedInputStream包装inputStream来标记和重置inputStream,但它不起作用: inputStream=new BufferedInputStream(inputStream); inputStream.mark(Integer.MAX_VALUE); final BitmapFactory.Options options=new BitmapFactory.Options(); options.inJustDecodeBounds=true; BitmapFactory.decodeStream(inputStream,null,options); //this works fine. i get the options filled just right. inputStream.reset(); final Bitmap bitmap=BitmapFactory.decodeStream(inputStream,null,options); //this returns null 为了得到一个url的inputStream,我使用: public static InputStream getInputStreamFromInternet(final String urlString) { try { final URL url=new URL(urlString); final HttpURLConnection urlConnection=(HttpURLConnection)url.openConnection(); final InputStream in=urlConnection.getInputStream(); return in; } […]

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

我在应用程序中使用Volley库。 在响应监听器,我需要InputStream作为响应 我如何得到它?

在HttpsURLConnection中使用HttpDelete时,在libcore.io.Streams.readAsciiLine(Streams.java:203)处发生EOFException

我面对的是一个错误消息 java.io.EOFException at libcore.io.Streams.readAsciiLine(Streams.java:203) at libcore.net.http.HttpEngine.readResponseHeaders(HttpEngine.java:579) at libcore.net.http.HttpEngine.readResponse(HttpEngine.java:827) at libcore.net.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:283) at libcore.net.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:177) at libcore.net.http.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:271) com.example.rest.MainActivity.excutePost(MainActivity.java:354) at com.example.rest.MainActivity$1.run(MainActivity.java:86) at java.lang.Thread.run(Thread.java:841) 和我的代码是 URL url = new URL(url); con = (HttpsURLConnection) url.openConnection(); con.setRequestProperty("Content-Language", "en-US,en;q=0.8"); con.setRequestProperty("userID", "user20@yahoo.com"); con.setRequestProperty("password", "xyz123"); con.setRequestMethod(HttpDelete.METHOD_NAME); con.setRequestProperty("Content-Type", "application/json"); con.setRequestProperty("Accept", "*/*"); con.addRequestProperty("Accept-Encoding", "gzip"); InputStream inputStream = con.getInputStream(); String convertInputStreamToString = convertInputStreamToString(inputStream); 我已经尝试了这些链接 Android HttpUrlConnection EOFException Android […]

将文件复制到资产文件夹

search1小时后,我没有发现任何解决scheme,我的问题。 我想从SD卡移动一个文件到资产文件夹,也覆盖资产文件夹中的现有文件(这两个文件是sqlite数据库具有相同的名称,只是在数据上有点差异) ??

Androidstream中使用flush()close()的好处?

我知道一般的想法,但是我只是不确定是否因为Android API规定了如下的效果:“刷新这个stream,这个方法的实现应该确保任何缓冲的数据都被写出来,这个实现什么都不做。 这个实现什么都不做< – 这是否意味着它没有用处或者我错过了什么?

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 […]

如何在MediaPlayer上播放Android InputStream?

所以我在我的资产文件夹中有一个小的audio文件,我想打开一个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(); […]