内存不足的错误 ByteArrayOutputStream发送大文件给WS
我将视频发送到Web服务,并且可以使用小于10MB的视频,如果视频约为12MB,请给我OutofmemoryError: 这是我的代码: FileInputStream fileInputStream = new FileInputStream(fichero); int bytesAvailable = fileInputStream.available(); int maxBufferSize = 1024 * 1024 * 2; int bufferSize = Math.min(bytesAvailable, maxBufferSize); byte[] buffer = new byte[bufferSize]; int bytesRead = fileInputStream.read(buffer,
2 2024-02-11
编程技术问答社区
Android-如何将webview.capture()中的图片转换为byte[]并返回为位图
我正在尝试捕获我从webview.capturepicture()保存到sqlitedatabase的图片在我的表中,然后能够检索该字节[]并将其转换回位图. 这是我在做的: Picture p = webView.capturePicture(); ByteArrayOutputStream bos = new ByteArrayOutputStream(); p.writeToStream(bos); byte[] ba = bos.toByteArray()); 我然后通过: 检索图像 byte[] image = cursor.getBlob(imageColumnIndex); Bitmap bm = BitmapFactory.decodeByteArray(image, 0, image.length); 我能够检索字节[],但是我一直从bitmapfactory那里得到一个空位图. 我还注意到,如果我登录(标签,""+bos),我会
2 2024-02-05
编程技术问答社区
在所附的堆栈跟踪中获得了一个资源,但从未释放-错误
我不确定为什么我会遇到此错误,在使用模拟器设置墙纸的5次中,有2次,我得到了错误 - "在附加的堆栈跟踪中获得了资源,但从未发布.请参见Java.io.可避免有关资源泄漏的信息." 当我使用手机设置墙纸时,它可以完美地奏效而没有故障.当我使用仿真器时,为什么它会崩溃? 这是我的代码: public class SetWallpaperAsync extends AsyncTask { private Context context; private ProgressDialog pDialog; String image_url; URL mImageUrl; String myFileUrl1; Bitmap bmImg = null; public SetWallpaperAsync(Context context) { this.context = context; } @Override protect
0 2024-02-04
编程技术问答社区
如何在Android应用中播放Amazon S3的视频?
我使用aws-android-sdk-1.4.3/samples/S3_SimpleDB_SNS_SQS_Demo预览存储在Amazon(Amazon Simple Storage Service)上的文件.浏览代码,我看到他们使用了此文件,以加速文件: com.amazonaws.demo.s3.S3.getDataForObject (line 130) public static String getDataForObject( String bucketName, String objectName ) { return read( getInstance().getObject( bucketName, objectName ).getObjectContent() ); } protected static String read( InputStream stream ) { try { ByteArrayO
0 2024-02-03
编程技术问答社区
创建一个内存中的FileDescriptor
in android in android in Android说: 文件描述符类的实例用作不透明的手柄 代表打开文件的基础机器特定结构, 一个开放的插座,或其他字节的其他源或接收器. 我想使用 bytearrayoutputstream 和 bytearrayinputstream 此外,归档者是最后一类,不能被覆盖.它说的唯一构造函数 - 构建(无效) filedescriptor对象. 任何想法如何在Android中使用归档的字样? 编辑 我想在 解决方案 使用LocalSocket,但要小心,因为有安全性. LocalSocket是用于使用UNIX域插座的Android API.域插座类似于TCP/IP插座,除了它们仅存在于设备上,不能用于跨网络的通信. 解决问题的简单但不安全的解决方案如下: // Create a unique name for the socket. String name = "your.packa
尝试压缩位图时出现空指针异常
试图压缩位图时,我会得到一个无效的指针异常,因此我可以将其发送到bytearrayoutputstream中以获取字节数组.我需要此字节数组,以便可以将图像上传到我的解析数据库中.日志错误如下所示. 01-11 23:29:41.522 32015-32015/com.example.whhsfbla.fashionnow E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.whhsfbla.fashionnow, PID: 32015 java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.graphics.Bitmap.compress(android.graphics.Bitmap$CompressFormat, int, java.io.OutputStream)' on a null object
0 2024-01-31
编程技术问答社区
作为ByteArrayOutputStream而不是FileOutputStream返回。
我需要从JSON对象生成PDF文件,并且能够使用Apache FOP和Java生成PDF文档.但是我想以ByteArrayOutputStream返回pdf文件,然后我必须像这样编码Base64.getEncoder().encodeToString(baos.toByteArray()). 请找到以下代码,可以在其中生成PDF文件,而不是FileOutputStream我想返回为ByteArrayOutputStream. ByteArrayOutputStream outStream = new ByteArrayOutputStream(); Transformer xslfoTransformer; try { xslfoTransformer = getTransformer(transformSource); Fop fop; try
4 2023-12-24
编程技术问答社区
如何在Java中同时使用ByteArrayOutputStream和DataOutputStream?
我在这里遇到一个问题,我认为这是因为我不太了解如何使用Java提供的API. 我需要将int和a byte[]写入byte[]. 我考虑使用DataOutputStream用writeInt(int i)和write(byte[] b)求解数据,并能够将其放入字节数组中,我应该使用ByteArrayOutputStream方法toByteArray(). toByteArray(). 我了解此类使用包装器模式,所以我有两个选择: DataOutputStream w = new DataOutputStream(new ByteArrayOutputStream()); 或 ByteArrayOutputStream w = new ByteArrayOutputStream(new DataOutputStream()); 但是,在这两种情况下,我都会"松开"一种方法.在第一种情况下,我无法访问toByteArray()方法,第二个情况下,我无法访
2 2023-12-15
编程技术问答社区
将ByteArrayInputStream的内容转换为字符串
我阅读这篇文章,但我没有关注.我已经看过将A ByteArrayInputStream的内容作为String进行检索,是建议使用ByteArrayOutputstream还是有更可取的方法? 我正在考虑示例 decorator 在运行时提高功能.对这是使用ByteArrayOutputStream的更好解决方案的兴趣? 解决方案 a ByteArrayOutputStream可以从任何InputStream中读取,最后产生byte[]. 但是,使用ByteArrayInputStream它更简单: int n = in.available(); byte[] bytes = new byte[n]; in.read(bytes, 0, n); String s = new String(bytes, StandardCharsets.UTF_8); // Or any encoding. 对于ByteArrayInputStream available()产
6 2023-10-01
编程技术问答社区
为什么ByteArrayOutputStream.close()会引发IOException?
为什么用throws IOException声明ByteArrayOutputStream.close? 首先,事实上,它不能扔任何东西,因为它的身体是空的.其次,de jure不会扔任何东西,因为它的文档说"关闭bytearrayoutputstream没有效果". 这不是(最重要的,但仍然)一个小错误吗? 是的,我知道它的超类OutputStream实现了Closable,close的方法可以扔IOException.但是没有人禁止使用close方法覆盖它(在ByteArrayOutputStream中),而没有投掷规格. (即使在某些古老的Java中,禁止使用更少的方法进行推荐的方法,更改ByteArrayOutputStream./p> 解决方案 最合理的解释(除了监督)是兼容性.返回Java 1.1,ByteArrayOutputStream 没有覆盖close() ,因此它从OutputStream中继承了该方法,该方法声明IOException.那时,这可能
4 2023-09-30
编程技术问答社区
从OutputStream创建InputStream的最有效方法
此页面: -inputstream 描述如何从outputStream创建输入流: new ByteArrayInputStream(out.toByteArray()) 其他替代方案是使用笨拙的管道和新线程. 我不喜欢将许多兆字节复制到内存字节数组中的新想法的想法. 是否有一个更有效的库? 编辑: 在劳伦斯·贡萨尔维斯(Laurence Gonsalves)的建议下,我尝试了管道,事实证明他们并不难处理. 这是Clojure中的示例代码: (defn #^PipedInputStream create-pdf-stream [pdf-info] (let [in-stream (new PipedInputStream) out-stream (PipedOutputStream. in-stream)] (.start (Thread. #(;Here you write into out-stream))) in
6 2023-09-30
编程技术问答社区
java insert Blob as ByteArrayOutputStream get ClassCastException
我已经将表示为bytearrayoutputstream表示的pdf文件保存到表的blob sql字段中,这是我的代码: public boolean savePDF(int version, ByteArrayOutputStream baos) throws Exception{ boolean completed = false; ConnectionManager conn = new ConnectionManager(); try { PreparedStatement statement = conn.getConnection().prepareStatement(INSERT_PDF); statement.setLong(1, version); statement.setBlob(2, (Blob)baos); statement.execute();
4 2023-09-19
编程技术问答社区
Java写到ByteArrayOutputStream的内存泄漏
我正在将图像字节写入ByteArrayOutputStream,然后将其通过插座发送. 问题是,当我做 时 ImageIO.write(image, "gif", byteArray); 内存非常上升,有点内存泄漏. 我使用此 发送 ImageIO.write(image, "gif", byteArrayO); byte [] byteArray = byteArrayO.toByteArray(); byteArrayO.flush(); byteArrayO.reset(); Connection.pw.println("" + byteArray.length); int old = Connection.client.getSendBufferSize(); Connection.client.setSendBufferSize(byteArray.length); Connection.client.getOutputStream().wr
10 2023-09-06
编程技术问答社区
为什么是InputStream。read()在这里阻塞?
我应该开发一个简单的sftp. 直到我的ByteArrayOutputStream(在这种情况下,baos)并没有编写所有arrayByte之前,情况都很好.可以向我解释一下,为什么系统挂在我身上? 服务器端: public static void main (String[] args) { int portTexto = 5656; String comando; String regexGet = "\\s*(get)\\s[A-z0-9]*\\.[A-z0-9]*\\s*"; String regexPut = "\\s*(put)\\s[A-z0-9]*\\.[A-z0-9]*\\s*"; try{ ServerSocket servSockTexto = new ServerSocket(portTexto); // pegar
8 2023-08-31
编程技术问答社区
显示存储在ByteArrayOutputStream中的PDF文件(不是文件)。
我已经在文件中创建了一个PDF文档(使用ITEXT),可以在屏幕上使用: 在屏幕上进行文凭. Document document = new Document(); PdfWriter.getInstance(document, filename); document.open(); // ... write something to document document.close(); Desktop.getDesktop().open(new File(filename)); // works fine :-) 但是在客户的机器上,我的程序将无法访问文件系统,因此我尝试了以下方法: Document document = new Document(); ByteArrayOutputStream baos = new ByteArrayOutputStream(); PdfWriter.getInstance(document,baos); doc
12 2023-05-22
编程技术问答社区
从ByteArrayOutputStream而不是文件中读取parquet数据
我想转换此代码: import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.apache.parquet.column.page.PageReadStore; import org.apache.parquet.example.data.simple.SimpleGroup; import org.apache.parquet.example.data.simple.convert.GroupRecordConverter; import org.apache.parquet.hadoop.ParquetFileReader; import org.apache.parquet.hadoop.util.HadoopInputFile; import org.apache.parquet.io.ColumnIOFactory; import org.apache.
20 2023-05-19
编程技术问答社区
爪哇: 写入ByteArrayOutputStream时出现IOException?
由于ByteArrayOutputStream简单地写入内存,因此绝不应该发生IOException.但是,由于OutputStream接口的合同,所有流操作在其throws子句中定义IOException. "处理"这个永不发生的IOException的正确方法是什么?只需将操作包装在一个空try-catch块中? 或者是否存在任何实际情况,ByteArrayOutputStream可能会引发例外? (另请参阅:我如何处理我知道永远不会以安全且可读的方式抛出的ioException?) 编辑 正如乔恩(Jon)指出的那样,ByteArrayOutputStream在它定义的write方法上没有声明throws子句 - 但是,它从OutputStream继承write(byte[]),并且它确实抛出IOEXception (很奇怪,BAOS不会覆盖此方法,因为它可以替换超级阶级版本(一次编写一个字节),并具有更有效的arraycopy调用) 解决方案
8 2023-05-15
编程技术问答社区
将OutputStream转换为ByteArrayOutputStream
我正在尝试将OutputStream转换为ByteArrayOutput流.我找不到有关如何执行此操作的明确的简单答案.这个问题是在stackoverflow上的问题的标题中提出的,但是问题的正文Aske如何将ByteArrayStream更改为OuputStream.我有一个已经创建的OutputStream,答案中给出的此示例不会编译! 这个问题在这里 i具有已经构造的输出流,长度为44个字节,称为WaveHeader.我想将其转换为bytearrayoutputstream,因为我希望能够用waveheader.tobytearray()将其更改为字节[],以简单地在以后的过程中; 是否有一种简单的铸造类型或可以允许的东西? 如果不是这样,请: 如果无法将其转换,是否可以在原始输出流中构建指向数据的指针? 某人如何访问输出流中包含的数据? 我是Java的新手.这对我来说只是一个爱好. visualbasic .net中的流中心! 解决
598 2023-05-15
编程技术问答社区
ByteArrayOutputStream/InputStream在S3导入时丢失换行字符
我有以下代码(伪代码is)... ByteArrayOutputStream output = new ByteArrayOutputStream(); output.write("something\n".getBytes()); output.write("something\n".getBytes()); ByteArrayOutputStream input = new ByteArrayInputStream(output.getBytes()); s3.putStream(input); 然后,当我从s3获取文件时,看起来像: 新线已经消失了!我不知道为什么会发生这种情况,并且互联网搜索没有帮助.有人有任何想法吗? 解决方案 *nix vs windows文件是常见的问题. 尝试:" \ r \ n",而不是" \ n" ByteArrayOutputStream output = new ByteArrayOutputStream(); o
20 2023-04-22
编程技术问答社区
Java ByteArrayOutputStream在内存中的泄漏
我提出了一个新问题,因为这与我的上一个线程不同.我现在知道什么问题更精确. 我创建一个新的bytearrayoutputstream ByteArrayOutputStream byteArray = new ByteArrayOutputStream(); 没什么特别的. 然后,当我写图像时,这样的方式 ImageIO.write(image, "gif", byteArray); 记忆首先像100 MB一样增加,而不是在Eclipse中,而是在"现实"中.然后,每次我将新图像写入该流或另一个! 之后,它会慢慢增加! 一段时间后,它停止工作并有点崩溃. 我尝试关闭它,所有这些,即冲洗,重置等所有内容,但仍然会泄漏内存.我希望当我停止使用bytearray或将其取消记忆时,它可以摆脱内存. System.gc(); 在这种情况下不会有帮助. 请帮助我以及您需要知道的其他任何我会回答的,请返回并回复:) 解决方案 您的使用模式
22 2023-03-25
编程技术问答社区