jjzjj

java.lang.OutOfMemoryError : GC overhead limit exceeded excel reader 错误

当我尝试运行下面的程序时,出现java.lang.OutOfMemoryError:GCoverheadlimitexceeded异常。该程序的主要方法访问指定目录并遍历所有包含.xlsx的文件。这工作正常,因为我在任何其他逻辑之前对其进行了测试。它调用xlsx的方法基本上将xlsx文件转换为csv并将其附加到现有文件中,也可以正常工作。但是当我把它放在for循环中时,这就是我得到这个异常的时候。我猜它在打开xlsx并将其转换为csv和打开第二个的时间后会发生冲突,也许我必须以某种方式关闭此行:FileinputFile=newFile("C:\\Users\\edennis.AD\\

java - 向 Java 流添加回调函数

假设我要执行以下操作:列出给定目录中的文件(作为流)将每个文件(路径)映射到一个Reader(例如BufferedReader)以供消费者使用。一旦文件被使用,删除文件代码看起来有点像这样:Streamstream=Files.list(Paths.get("myFolder"))//ReturnsastreamofPath.callback(Files::delete)//Thiswouldhavetobecalledafterthereaderhasbeenconsumed.map(Files::newBufferedReader);//MapseverypathintoaRead

java - 如何从流中读取图像?

有人可能会建议BufferedImage是用Java处理图像的最佳选择。虽然它很方便,但在阅读巨大的图像时,它通常以:Exceptioninthread"main"java.lang.OutOfMemoryError:Javaheapspace增加VM大小不是解决方案,因为在我的情况下某些输入文件确实很大。所以我正在寻找如何从流中逐步读取图像的方式。我怀疑ImageIO中的ImageIO.createImageInputStream()可能符合要求,但我不确定如何使用它来读取chunks逐步。此外,JDK的rt.jar中有类PNGMetadata和PNGImageReader似乎很有用

java - 空检查时可能未初始化错误

我正在检查变量是否已初始化,但此时netbeans给我variablereadermightnothavebeeninitialized警告。如何修复/抑制此问题?这是我的代码(摘要):finalReaderreader;try{reader=newReader(directory);//additionalstuffthatcancauseanexception}catch(Exceptionex){//dostuff}finally{if(reader!=null);}if检查的重点是判断是否初始化。这方面的最佳实践是什么? 最佳答案

java - Webservice调用返回错误500

我已经用Java开始了一个小项目。我必须创建一个客户端,它将xml作为HTTPPOST请求发送到url。我尝试使用java.net.*包(以下是一段代码),但出现如下错误:java.io.IOException:ServerreturnedHTTPresponsecode:500forURL:"targeturl"atsun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441)atnewExample.main(newExample.java:36)我的代码如下:try{U

java - 如何以正确的顺序使用 iText 从 PDF 中提取图像?

我正在尝试从PDF文件中提取图像。我在网上找到了一个例子,效果很好:PdfReaderreader;Filefile=newFile("example.pdf");reader=newPdfReader(file.getAbsolutePath());for(inti=0;i这给了我所有的图像,但图像的顺序错误。我的下一次尝试是这样的:for(inti=0;i虽然o.isStream()==true,但我只得到/Length和/Filter并且流只有大约100个字节长。根本找不到图像。我的问题是,以正确的顺序从PDF文件中获取所有图像的正确方法是什么。 最佳

"piping"的 Java 习语

是否有比以下更简洁/标准的习惯用法(例如,JDK方法)用于将输入“管道化”到Java中的输出?publicvoidpipe(Readerin,Writerout){CharBufferbuf=CharBuffer.allocate(DEFAULT_BUFFER_SIZE);while(in.read(buf)>=0){out.append(buf.flip());buf.clear();}}[编辑]请注意Reader和Writer是给予的。正确答案将演示如何取in和out并形成一个管道(最好不超过1或2个方法调用)。我会接受in的答案和out是InputStream和一个OutputS

java - 如何在java中获取图像文件(BufferedImage)的格式(ex :jpen, png,gif)

我想使用java获取缓冲图像格式或图像类型,InputStreamstream=request.getResponseStream();BufferedImageimage=ImageIO.read(stream);LOGGER.info(image); 最佳答案 引用javax.imageio.ImageIO.read()代码此代码最初是在groovy中实现的,但翻译成java因此可能存在语法错误。publicStringread(InputStreaminput)throwsIOException{ImageInputStrea

java - Spring Batch Reader 的游标在 JTA 事务管理步骤中提前关闭

相关步骤的工作配置如下:Step、SpringBatchJobRepository和业务存储库(使用各种数据源)都使用JTA事务管理器。步骤“myStep”使用JdbcPagingItemReader。WebLogic、OracleXE和/或EE我想分析“myStep”中JdbcCursorItemReader的性能,但是在第一次提交后,第二个block的第一次读取将失败并出现java.sql.SQLException:结果集已关闭。我怀疑可能是JTA/XA驱动程序出于某种原因关闭了游标,因此我为“myStep”提供了一个简单的数据源事务管理器(在读者正在使用的数据源上),并且该步骤能

java - 使用 StAX 读取 XML 字符串

我第一次使用stax来解析XML字符串。我找到了一些示例,但无法让我的代码正常工作。这是我的代码的最新版本:publicclassAddressResponseParser{privatestaticfinalStringSTATUS="status";privatestaticfinalStringADDRESS_ID="address_id";privatestaticfinalStringCIVIC_ADDRESS="civic_address";Stringstatus=null;StringaddressId=null;StringcivicAddress=null;publ