Tag:

当某些字节错误时,BitmapFactory.decodeStream(inputStream)始终返回null

我正在构建一个Android应用程序,我目前无法从URL中检索位图。 这是我正在使用的代码: public static Bitmap bmpFromURL(URL imageURL){ Bitmap result = null; try { HttpURLConnection connection = (HttpURLConnection)imageURL .openConnection(); connection.setDoInput(true); connection.connect(); InputStream input = connection.getInputStream(); result = BitmapFactory.decodeStream(input); } catch (IOException e) { e.printStackTrace(); } return result; } 当图片写入时,一切正常,但是当某些字节错误时,结果为空。 我认为这基本上是可以预期的,因为它是在BitmapFactory.decodeStream的文档中写的: 如果输入流为空,或者不能用于解码位图,则该函数返回null。 流的位置将是读取编码数据后的位置。 问题是,我的错误图片很好地解释了我的网络浏览器,我可以在iPhone平台上这样做。 有没有办法忽略那些错误的像素? 也许有选项参数? 任何帮助赞赏 罗曼

无法使用Apache Commons Exec为命令提供多个输入并提取输出

我正在编写一个Java应用程序,需要使用Apache Commons Exec库来使用外部命令行应用程序。 我需要运行的应用程序具有相当长的加载时间,因此最好保持一个实例处于活动状态而不是每次都创建一个新进程。 应用程序的工作方式非常简单。 一旦启动,它会等待一些新输入并生成一些数据作为输出,两者都使用应用程序的标准I / O. 因此,我们的想法是执行CommandLine,然后将PumpStreamHandler与三个独立的流(输出,错误和输入)一起使用,并使用这些流与应用程序进行交互。 到目前为止,我已经在基本场景中完成了这项工作,我有一个输入,一个输出,然后应用程序关闭。 但是一旦我试图进行第二次交易,就会出现问题。 在创建了我的CommandLine之后,我创建了我的Executor并像这样启动它: this.executor = new DefaultExecutor(); PipedOutputStream stdout = new PipedOutputStream(); PipedOutputStream stderr = new PipedOutputStream(); PipedInputStream stdin = new PipedInputStream(); PumpStreamHandler streamHandler = new PumpStreamHandler(stdout, stderr, stdin); this.executor.setStreamHandler(streamHandler); this.processOutput = new BufferedInputStream(new PipedInputStream(stdout)); this.processError = new BufferedInputStream(new PipedInputStream(stderr)); this.processInput = new BufferedOutputStream(new PipedOutputStream(stdin)); this.resultHandler […]

Java的平台无关/ dev / null输出接收器

除了一个匿名类( new OutputStream() { … } )之外,是否有人可以建议在Windows上也可以使用new FileOutputStream(“/dev/null”)的道德等价物? 如果有人想知道’这是为了什么?’ 我有一个程序,对文件进行一致性分析。 它有一个’详细’选项。 当verbose选项打开时,我想看到很多输出。 程序不是很匆忙,它是一个工具,所以不是编写所有那些额外的if语句来测试我是否需要输出,我只是想在不需要时将它写入bit-bucket。

用java流音乐

我目前正在编写一些聊天程序,现在想通过客户端命令播放音乐,如: /music http://somewebsite.com/somesong.mp3 因此,链接将从发送歌曲的客户端发送到服务器。 然后服务器应该不下载歌曲,将其流式传输到每个客户端(他们也不应该下载它)。 问题是,我不知道如何通过基于TCP的连接流式传输mp3。 我的问题是,如果有人能够提供我需要的库/教程/想法/代码示例。 作为替代方案,从一个客户端的计算机直接流式传输音乐也是可以的。 如果我(作为客户端)在我的机器上播放歌曲(使用某些音乐播放器,如VLC或类似),然后输入某个命令(可能/流 ),声卡中的声音将流式传输到服务器,然后传输到每个客户登录。 如果你能为我提供一些建议,那将是非常棒的,谷歌到目前为止并没有真正帮助,主要是因为我不太明白我应该搜索什么。 提前致谢!

如何从java.lang.Process中关闭std -stream?

这个问题是关于java.lang.Process及其对stdin,stdout和stderr的处理。 我们的项目中有一个类,它是org.apache.commons.io.IOUtils的扩展。 我们有一个安静的新方法来关闭Process-Object的std -stream合适的? 或者它不合适? /** * Method closes all underlying streams from the given Process object. * If Exit-Code is not equal to 0 then Process will be destroyed after * closing the streams. * * It is guaranteed that everything possible is done to release resources * even when Throwables are thrown in […]

在Java中,如何将InputStream转换为字节数组(byte )?

我的背景是.net,我对Java很新。 我正在为我们公司的java团队做一些工作,架构师需要我实现一个带有InputStream(java.io)对象的方法。 为了实现方法的目的,我需要将其转换为字节数组。 是否有捷径可寻?

将InputStream(Image)转换为ByteArrayInputStream

不确定我应该怎么做。 任何帮助,将不胜感激

为什么关闭()输入流是好的?

我有Java编程语言的丰富经验。 但是我一直想到的一件事是为什么有必要close() java.io.InputStream或它的子类? 现在使用java.io.OutputStream ,比如FileOutputStream ,在写入文件之后,如果我们不close()输出流,我们打算在文件中写入的数据仍保留在缓冲区中并且不写入文件。 因此有必要close()一个OutputStream 。 但是在没有关闭 InputStream之后我从未有过任何痛苦的经历。 但是,互联网和书籍上的所有文章仍然表示关闭任何Stream总是好的,可能是InputStream或OutputStream 。 所以我的问题是为什么有必要close()一个InputStream ? 人们说你可能面临内存泄漏,你不要close()它。 那是什么样的内存泄漏呢?

如何使用Hibernate将数据流式传输到数据库BLOB(在byte 中没有内存存储)

我正在寻找一种方法将二进制数据流入/流出数据库。 如果可能的话,我希望用Hibernate完成(以数据库无关的方式)。 我发现的所有解决方案都涉及将二进制数据显式或隐式加载到内存中作为byte []。 我需要避免它。 假设我希望我的代码能够从数据库(存储在BLOB列中)向本地文件写入2GBvideo,或者相反,使用不超过256Mb的内存。 它显然是可以实现的,并且不涉及伏都教。 但是我找不到办法,现在我正试图避免调试Hibernate。 让我们看看示例代码(记住-Jmx = 256Mb)。 实体类: public class SimpleBean { private Long id; private Blob data; // … skipping getters, setters and constructors. } Hibernate映射片段: 测试代码片段: Configuration cfg = new Configuration().configure(“hibernate.cfg.xml”); ServiceRegistry serviceRegistry = new ServiceRegistryBuilder() .applySettings(cfg.getProperties()) .buildServiceRegistry(); SessionFactory sessionFactory = cfg.buildSessionFactory(serviceRegistry); Session session = sessionFactory.openSession(); session.beginTransaction(); File dataFile […]

了解getInputStream和getOutputStream

这是一个代码 import java.io.*; import java.net.*; public class Whois { public static void main(String[] args) throws Exception { // TODO Auto-generated method stub int c; Socket s = new Socket(“whois.internic.net”,43); *InputStream in = s.getInputStream(); *OutputStream out = s.getOutputStream(); String str = (args.length == 0 ? “osborne.com” : args[0] ) + “\n”; byte buf[] = str.getBytes(); *out.write(buf); […]