草庐IT

inputstreams

全部标签

android - 读取失败 : EBADF (Bad file descriptor) while reading from InputStream Nougat

随着androidN最近的变化,我不得不升级我的代码以使用FileProvider来使用相机/文件管理器获取图像/文件。代码在模拟器(genymotion)中运行良好,但在MotoG4plus中抛出IO异常。if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.N){try{ParcelFileDescriptorfcd=getContentResolver().openFileDescriptor(uriOrig,"r");//uriOrigistheurireturnedfromcameraif(fcd!=null){InputStreamin

java - InputStream 当部分名称已知时? (安卓)

我要读取一个名称部分已知的文件。假设我有几个类似以下的文件:apple_5_34.jpgorange_3_67.bmpbanana_1_13.gif当我只知道单词“apple”、“orange”或“banana”时,我想获取这些文件的InputStream。任何建议将不胜感激,并提前致谢。 最佳答案 在目录上调用listFiles()得到一个File数组,循环遍历,检查File[i].getName().toLowerCase().startsWith("banana"),如果是,获取File[i]的InputStream。

java - InputStream.bytesRemaining 小于应有的值

我有一堆来自十几个来源的图像,我正在后台线程中下载它们。大多数图像下载没有问题,但有2个来源导致问题。它们中的所有图像都无法加载。我正在使用以下代码下载(和存储)图像:Filef=newFile(cacheDir,urlHash);Bitmapbitmap=null;InputStreamis=newURL(url).openStream();OutputStreamos=newFileOutputStream(f);Utils.CopyStream(is,os);os.close();bitmap=BitmapFactory.decodeStream(newFileInputStre

java - Android FileNotFound 异常 - 无法从没有文件格式的图像 URL 获取 InputStream

标题很容易理解。以下代码...:URLimageUrl=newURL(url);try{HttpURLConnectionconn=(HttpURLConnection)imageUrl.openConnection();conn.setDoInput(true);conn.connect();intlength=conn.getContentLength();InputStreamis=conn.getInputStream();returnBitmapFactory.decodeStream(is);}catch(IOExceptione){e.printStackTrace();

java - InputStream 哪个更快 read() 或 read(byte,offset,length)

我正在为android编写一个应用程序,它使用Socket中的InputStream。我正在尝试通过这种方式将文件从pc发送到android。该文件的大小将近40kb,在android上我发现它一次只能读取2kb的数据,所以我正在分块读取它。我有两种读取字节的方法1)while((d=inputStream.read())>=0){imgData[i]=(byte)d;i++;if(i>=40054){//dothefurtherprocessingherelikesavingitondisk.i=0;}}2)while(inputStream.read(byte,0,2048)>=0

android - 互联网连接丢失时不停止读取 Inputstream

我正在使用异步任务下载文件。它正常工作,直到我关闭我的android的wifi连接(没有其他互联网连接),下载对话框仍然没有变化。当我查看日志时,我发现inputstream的函数read()是不停的。那么如何检查这种情况呢?这是我的代码:URLurl=newURL(this.url);URLConnectionconnection=url.openConnection();connection.setReadTimeout(1000);connection.connect();//thiswillbeusefulsothatyoucanshowatypical0-100%progre

java - InputStream 没有收到 EOF

我正在尝试通过套接字将图像从我的安卓设备发送到我的电脑。问题是我计算机上的输入流读取了每个字节,但最后一组字节除外。我试过修剪字节数组并发送它,我多次手动将-1写入输出流,但输入流从未读取-1。它只是挂起等待数据。我也试过不关闭流或套接字以查看是否是某种计时问题,但效果不佳。客户端(安卓手机)//ThishastobeanobjectoutputstreambecauseIwriteobjectstoitfirstInputStreamis=Animage'sinputstreamandroidObjectOutputStreamobjectOutputStream=newObject

android - 如何获取 https 的 InputStream,分块 Push Servlet?

我花了三天时间了解如何连接到https分块推送servlet并获取输入流。与HttpsURLConnection的连接有效,与HttpClient的连接也有效但是在每个编程代码中,当我尝试获取此servlet的InputStream时,此行会阻塞!没有错误,没有异常,什么都没有。调试器只在这一行停止并等待。我知道servlet的Header中没有Content-Length并且我知道这就是URLConnectiongetInputStream的原因block。但是现在我没有别的想法了。有没有人可以帮助我从servlet中获取此InputStream?HttpsURLConnection

java - 使用 read 与 IOUtils.copy 从 InputStream 读取

我正在尝试使用2种方法通过蓝牙套接字从InputStream中读取数据。第一个是:InputStreaminputStream=bluetoothSocket.getInputStream();byte[]buffer=newbyte[1024];inputStream.read(buffer);StringclientString=newString(buffer,"UTF-8");这个的问题是现在在clientString中有原始消息加上“0”,直到缓冲区已满(如果我使用第一个字节,我可以知道消息的长度作为指标,但我尽量不这样做)。第二个是(使用ApacheCommonsIO中的I

java - HttpURLConnection 读取 InputStream 两次

我通过HttpURLConnection向服务器发出httpget请求,我需要读取响应(InputStream)两次:用于记录目的和解析响应。返回的InputStraem是org.apache.harmony.luni.internal.net.www.protocol.http.ChunkedInputStream的实例,它不支持标记(是.markSupported()返回false)。因此我不能mark()和reset()流,在日志中写入响应后我无法解析它。当然,我可以将响应读入String或其他内容,记录它们并稍后解析。但是当我使用流时,我正在避免潜在的OutOfMemomryE