如何通过HTTP下载文件并将其内容存储在Java中的String中

我试图通过HTTP下载文件并将其内容存储在String中,如标题所示。 我的方法是: URL u = new URL(“http://url/file.txt”); ByteArrayBuffer baf = new ByteArrayBuffer(32); InputStream in = (InputStream) u.getContent(); BufferedInputStream bis = new BufferedInputStream(in); int buffer; while((buffer = bis.read()) != -1){ baf.append((byte)buffer); } bis.close(); in.close(); 尝试从流中读取时,代码失败,报告流已关闭。 现在,如果您尝试通过浏览器访问该文件,它将不会作为文本提供,而是作为要下载的文件提供。 我没有在网上搜索这个,所以一点点见解将非常感激! 谢谢。

在Java中将多个ResultSet合并到单个ResultSet中

假设我有多个ResultSet(每个resultSet都会引用数据库中的1行)(它们是同一个表。)。 现在我想创建合并的ResultSet,实习生将拥有所有其他resultSet。 所以我的主要目标是创建一个组合的ResultSet,它将指向以前由各个resultSet指向的所有行。 我正在使用Java。 有人知道我们能够实现这一目标吗? 编辑:我们正在使用java.sql.ResultSet 。 编辑:使其更清晰: 我想说 List someResults ; // each resultSet Would point to a single row in database. 我想创建一个合并的ResultSet finalResults; psudo代码: List resultSets = // poppulated from code ResultSet rs = convert(resultSets) // psude conver method

资源泄漏与内存泄漏和性能之间的关系

资源泄漏我指的是Streams,StreamWriter(我认为他们正在使用文件描述符),Handles(GDI或用户也是Graphics字体)。 很快所有Closable对象都可以算作资源! 如果应用程序中存在一些资源泄漏。 假设一些InputStreams没有关闭,它们是否也可能因为垃圾收集器从内存中删除它们而导致内存泄漏? 另一个问题:资源泄漏会影响性能吗?

Java:每X秒执行一次操作

我有一个工作的Java程序,我想每隔X秒在显示器上绘制一个对象。 做这个的最好方式是什么? 我正在考虑使用for循环和一些sleep语句,但我很好奇是否有更简单或更有效的方法来解决这个问题。 谢谢。

Jersey2,Hk2dependency injection(自动)给出AbstractMethodError:org.jvnet.hk2.internal.DynamicConfigurationImpl.addIdempotentFilter

坚持这个问题一段时间。 我正在尝试集成Tomcat 9,JDK 10,Jersey 2.23,HK2(用于DI)以及自动dependency injection。 我已经按照本教程 ,但得到以下错误,我搜索了很多,但没有找到任何东西。 我已经使用依赖来生成“META-INF / hk2-locator / default”,它正在生成。 依赖 org.glassfish.hk2 hk2-metadata-generator 2.4.0 错误堆栈 SEVERE: Servlet [MyApplication] in web application [/javaeeLearning] threw load() exception java.lang.AbstractMethodError: org.jvnet.hk2.internal.DynamicConfigurationImpl.addIdempotentFilter([Lorg/glassfish/hk2/api/Filter;)V at org.glassfish.hk2.utilities.ServiceLocatorUtilities.addClasses(ServiceLocatorUtilities.java:451) at org.glassfish.hk2.utilities.ServiceLocatorUtilities.enablePerThreadScope(ServiceLocatorUtilities.java:107) at org.glassfish.jersey.internal.inject.Injections._createLocator(Injections.java:141) at org.glassfish.jersey.internal.inject.Injections.createLocator(Injections.java:123) at org.glassfish.jersey.server.ApplicationHandler.(ApplicationHandler.java:330) at org.glassfish.jersey.servlet.WebComponent.(WebComponent.java:392) at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:177) at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:369) at javax.servlet.GenericServlet.init(GenericServlet.java:158) at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1124) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1079) at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:971) at […]

使用Apache POI将byteArray转换为XSSFWorkbook

我正在使用Apache POI,我正在尝试将xlsx文件作为HTTP请求发送并将其作为响应返回。 我正在使用jayway restassured来发出HTTP请求。 这是我发送请求的代码部分 File file = new File(“path”); String response = given().multipart(file).when().post(“URL”).getBody().asString(); byte[] bytes = response.getBytes(“ISO-8859-1”); InputStream stream = new ByteArrayOutputStream(bytes); try { XSSFWorkbook workbook = new XSSFWorkbook(stream); } catch(Exception e){ e.printStackTrace(); } 以下是为请求生成响应的代码 XSSFWorkbook workBook; //this workBook has the workbook sent as HTTP request //code to make changes in workBook ByteArrayOutputStream outStream […]

以编程方式运行TestNG需要循环来自动创建多个测试

我想知道是否有人可以给我正确的方向。 不确定我是否正确使用Map或HashMap进行循环。 我知道如果我做一个参数但是我喜欢在以编程方式创建XML时执行1-100个主机参数。 你能告诉我创建循环需要做什么,这样我就可以用主机值为1-100的参数创建多个测试。 我的代码如下: package firsttestngpackage; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.openqa.selenium.WebDriver; import org.openqa.selenium.support.ui.WebDriverWait; import org.testng.TestNG; import org.testng.xml.XmlClass; import org.testng.xml.XmlSuite; import org.testng.xml.XmlTest; public class Test1 { WebDriver driver; WebDriverWait wait; private void testRunner(Map testngParams) { TestNG testNG = new TestNG(); XmlSuite suite = getXmlSuite(); XmlTest test = getXmlTest(suite); test.setParameters(testngParams); List […]

找不到带URI的HTTP请求的映射(spring 4.1 annotation配置)

首先,请不要锁定这个post。 我已经阅读了所有问题,但仍然无法解决我的问题。 我正在研究如何在spring上使用注释而不配置xml文件。 我正在坚持这个错误: 在DispatcherServlet中找不到具有URI [/WEB-INF/index.jsp]的HTTP请求的映射,其名称为“dispatcherServlet” 这是项目结构 这是我的pom.xml 4.0.0 com.mycompany spring-sample 1.0 war spring-sample ${project.build.directory}/endorsed UTF-8 org.springframework.boot spring-boot-starter-parent 1.2.0.M2 javax javaee-web-api 7.0 provided org.springframework spring-context org.springframework.boot spring-boot-starter-web spring-milestones Spring Milestones http://repo.spring.io/milestone false spring-snapshots http://repo.spring.io/snapshot spring-milestones http://repo.spring.io/milestone org.apache.maven.plugins maven-compiler-plugin 3.1 1.7 1.7 ${endorsed.dir} org.apache.maven.plugins maven-war-plugin 2.3 false org.apache.maven.plugins maven-dependency-plugin 2.6 validate copy ${endorsed.dir} true javax javaee-endorsed-api […]

连续测试运行后,SilkTest基本状态无法识别

在我的测试环境中,我们有一些执行某些操作的类,其中一些使用SilkTest。 测试过程由我们解析的XML文件定义,转换为ActionImpl类,并执行操作。 例如,以下内容将登录我们的应用程序,切换用户,然后重新启动服务器: 对于restartServer操作,代码最终会调用以下方法,该方法使用当前运行测试的eclipse.exe创建restartServer 。 private PassFail restartServerInEclipse() { Desktop desktop = new Desktop(); BaseState eclipseBaseState = new BaseState(“*eclipse.exe”, “/Shell[@caption=’Java EE*’]”, TechDomain.SWT, TechDomain.XBROWSER, TechDomain.WIN32); desktop.executeBaseState(eclipseBaseState); // Do some stuff, like finding CTabItem objects, clicking them, etc. return passFail; } 假设我正在进行当天的第一次测试。 我刚开始工作,决定进行测试。 如果代码进入restartServer操作并调用restartServerInEclipse() ,它将识别当前正在运行的eclipse.exe ,并在我告诉它的任何Silk对象上成功执行任何Silk方法。 但是,在没有退出Eclipse或Open Agent的情况下,在测试完成后,如果我再次运行相同的测试,如全新对象,全新测试线程,测试运行并停止,我单击Eclipse中的绿色运行按钮再次,当它到达BaseState eclipseBaseState = new BaseState(…)代码时,我得到以下错误: com.borland.silktest.jtf.common.LaunchApplicationFailedException: Failed to start application […]

使用java中的groovy.util.AntBuilder

在groovy中,groovy.util.AntBuilder可用于例如。 将文件解压缩到一个文件夹中: AntBuilder ant = new AntBuilder(); ant.unzip(src: file.getPath(), dest: outputFolder.getPath()); 现在我想用java做同样的事情。 它不可能直接调用解压缩。 我假设这是invokeMethod的用途: AntBuilder ant = new AntBuilder(); String[] args = new String[4]; args[0] = “src”; args[1] = file.getPath(); args[2] = “dest”; args[3] = outputFolder.getPath(); ant.invokeMethod(“unzip”, args); 以上给出: No signature of method: groovy.util.AntBuilder.unzip() is applicable for argument types: (java.lang.String, java.lang.String, java.lang.String, java.lang.String) values: 有任何想法吗? […]