编写Big JSON文件以避免OutOfMemory问题的最佳方法

首先,请注意今天是我与GSON第一天。 我正在尝试使用GSON库编写Json文件。 我在ArrayList有成千上万的JsonObjects 。 写入Json文件时,它看起来应该与此类似。 [ { “hash_index”: “00102x05h06l0aj0dw”, “body”: “Who’s signing up for Obamacare?”, “_type”: “ArticleItem”, “title”: “Who’s signing up for Obamacare? – Jan. 13, 2014”, “source”: “money.cnn.com”, “primary_key”: 0, “last_crawl_date”: “2014-01-14”, “url”: “http://money.cnn.com/2014/01/13/news/economy/obamacare-enrollment/index.html” }, { “hash_index”: “00102x05h06l0aj0dw0iz0kn0l@0t#0”, “body”: “Who’s signing up for Obamacare?”, “_type”: “ArticleItem”, “title”: “Who’s signing up for Obamacare? – Jan. […]

保存Selenuim Web Driver生成的firefox配置文件

我使用Selenium WebDriver和firefox。 每次selenium在temp文件夹中为firefox生成新的anoniumus配置文件,并在退出后删除它。 我需要这个档案。 我怎么才能得到它? 存储的Fe配置文件 C:\Documents and Settings\Developer\Local Settings\Temp\anonymous5583304190515426768webdriver-profile 关闭WebDriver后 driver.quit(); 配置文件将被删除,但它已被记录,我希望在下一次迭代中使用它,方法是使用它启动WebDriver: FirefoxDriver driver = new FirefoxDriver(new FirefoxProfile(profileFolder)); 是否有可能保存配置文件没有肮脏的黑客攻击,如驱动程序工作时应对整个文件夹(我不确定它是否工作,因为在Windows中,文件夹被锁定而firefox启动)? 可能在Selenium中存在一些API吗?

Java – 以逗号分隔的记录到String Array中?

我是Java的新手,所以请光临我。 我正在尝试读取一个BufferedReader,该文件读入包含以逗号分隔的记录的文件。 我想在两个逗号之间拆分每个字符串(或记录),删除双引号,并将每个字符串放入String数组的索引中。 例如: 说我在文件中有这一行: (“0001”,“00203”,“82409”(换行符) “0002”,“00204”,“82500”(换行符) 等等。) 我想将0001放入一个String数组[1],我想将00203放入String数组[2],依此类推…… 以下代码遍历文件,将第二列中的所有记录放入String数组[2]。 这意味着,在执行下面的代码后,如果我执行System.out.println(arr [2]),它将打印00203和00204,而我希望数组[2]为00203,数组[5]为00204。 这是我的代码: public String[] getArray(String source) { FileInputStream fileinput = new FileInputStream(source); GZIPInputStream gzip = new GZIPInputStream(fileinput); InputStreamReader inputstream = new InputStreamReader(gzip); BufferedReader bufr = new BufferedReader(inputstream); String str = null; String[] arr = null; while((str = bufr.readLine()) != null) { arr = str.replace(“\””, […]

Jackson – 使用loadDataFromNetwork()方法使用Robospice读取JSON数组

我正在尝试读取JSON数组,其格式如下: [{“vehicle_id”:”76″,”color”:”red”},{“vehicle_id”:”7″,”color”:”blue”}]遵循Robospice的入门指南 。 Vehicle.java public class Vehicle { @JsonProperty(“vehicle_id”) private int vehicleID; @JsonProperty(“color”) private String color; } (塞特犬和吸气者跟随) 给出错误的类:VehiclesRequest.class public class VehiclesRequest extends SpringAndroidSpiceRequest { private static final String METHOD = “systemVehicles”; public SystemVehiclesRequest() { super(Vehicle.class); } @Override public Vehicle[] loadDataFromNetwork() throws Exception { return getRestTemplate().getForObject( FULL_URL, Vehicle[].class); } } 如您所见,我重写了loadDataFromNetwork()方法,然后将其传递给我的活动中的spiceManager.execute()方法,并使用自定义侦听器从请求中读取数据。 但是我无法从loadDataFromNetwork()返回数组(我也尝试使用List loadDataFromNetwork() ,这里最好的解决方法是什么? 我知道我可以以不同的方式获取数据,但我仍然希望使用我的监听器并能够以这种方式进行try块。

Gradle不尊重JDK9中的–add-modules jvm参数

我正在尝试JDK9(9-ea + 143),并且需要设置–add-modules java.xml.bind 。 我试过了: 设置GRADLE_OPTS=”–add-modules java.xml.bind ‘-Dorg.gradle.jvmargs=–add-modules java.xml.bind'” 设置org.gradle.jvmargs=–add-modules java.xml.bind在gradle.properties中org.gradle.jvmargs=–add-modules java.xml.bind 。 将test { jvmArgs ‘–add-modules java.xml.bind’ }到build.gradle 将tasks.withType(Test) { jvmArgs ‘–add-modules java.xml.bind’ }到build.gradle 将tasks.withType(JavaExec) { jvmArgs ‘–add-modules java.xml.bind’ }到build.gradle 测试仍然失败。 我错过了什么? 我在https://github.com/henrik242/gradle-jdk9-test-problem中有一个示例项目 ✨ ./gradlew build :compileJava /foo/gradle-jdk9-test-problem/src/main/java/SomeClass.java:1: error: package javax.xml.bind does not exist import javax.xml.bind.ValidationException; ^ /foo/gradle-jdk9-test-problem/src/main/java/SomeClass.java:5: error: cannot find symbol public […]

打印出给定数字的最大数字 – Java

首先,如果我的问题不清楚,我会道歉。 我希望输出是用户输入的最大可能数。 例: input: x = 0; y = 9; z = 5; output: 950 我尝试过类似下面的代码。 import java.util.Scanner; class LargestOfThreeNumbers{ public static void main(String args[]){ int x, y, z; System.out.println(“Enter three integers “); Scanner in = new Scanner(System.in); x = in.nextInt(); y = in.nextInt(); z = in.nextInt(); if ( x > y && x > […]

在Java中创建更高级的元素:Swing或图像

使用Swing在Java中创建GUI时,应该如何创建更高级的“元素”? 例如,考虑: 这可以使用~10张图像完成,具体取决于当前页面或状态。 我也确信可以以编程方式执行此操作,但是,考虑到我过去使用Swing的经验,我也确定它会为相对简单的事情提供大量代码 。 特别是考虑到这可以在具有最多~40行代码的CSS中完成。 在这种情况下, 是否有任何替代方法来创建这个“元素”? 如果不; 什么是首选:图像或摇摆?

Eclipse RCP 4 – 处理程序方法参数

我目前正在研究新的Eclipse RCP框架,并对处理程序有疑问。 在RCP 3.xa处理程序类中需要实现一个接口,所以给出了方法。 在RCP 4中,处理程序类不需要实现接口。 相反,你注释方法。 例如,如果您有Vogellas Tutorial中的ExitHandler ,则会有@Execute注释。 如您所见,传递了IWorkbench参数。 package com.example.e4.rcp.todo.handler; import org.eclipse.e4.core.di.annotations.Execute; import org.eclipse.e4.ui.workbench.IWorkbench; public class ExitHandler { @Execute public void execute(IWorkbench workbench) { workbench.close(); } } 我现在的问题是:在使用某些注释时,我如何知道传递了哪些参数? 在这种情况下,我如何知道我得到的是IWorkbench对象而不是Window对象? 事实上,我可以在没有参数的情况下注释方法,但它仍然会被执行。 某处有文件吗? Eclipse e4 Tools似乎也不支持我…

Servlet 3与@WebFilter和@WebServlet部署有关

我正在尝试将我在web.xml文件中定义的现有servlet和filter迁移到Glassfish V3服务器上的@WebServlet和@WebFilter注释。 目前web.xml定义了12个servlet和6个filter。 尝试从web.xml文件中删除一个servlet,并将@WebServlet注释添加到Java servlet文件中。 但是当我的JSP试图访问Servlet Glassfish时,很难访问servlet,抱怨“服务不可用”。 基本上是使用Glassfish Server 3从未识别的注释定义的Servlet和filter。 这个现有的错误是注释不能和web.xml文件一起使用吗? 我们有任何解决方法吗? 我引用了以下Sun文档将web.xml迁移到servlet 3注释

了解抽象工厂模式

我在维基上读过关于抽象工厂模式的文章。 但是我不明白使用这种模式真的有利可图。 你能得到一个很难避免抽象工厂模式的例子吗? 请考虑以下Java代码: public abstract class FinancialToolsFactory { public abstract TaxProcessor createTaxProcessor(); public abstract ShipFeeProcessor createShipFeeProcessor(); } public abstract class ShipFeeProcessor { abstract void calculateShipFee(Order order); } public abstract class TaxProcessor { abstract void calculateTaxes(Order order); } // Factories public class CanadaFinancialToolsFactory extends FinancialToolsFactory { public TaxProcessor createTaxProcessor() { return new CanadaTaxProcessor(); } public […]