java:用charset读取大文件

我的文件是14GB,我想逐行阅读,并将导出到excel文件。 由于文件包含不同的语言,如中文和英文, 我尝试使用带有UTF-16 FileInputStream来读取数据, 但导致java.lang.OutOfMemoryError :Java堆空间 我试图增加堆空间但问题仍然存在 我该如何更改文件读取代码? createExcel(); //open a excel file try { //success but cannot read and output for different language //br = new BufferedReader( // new FileReader(“C:\\Users\\brian_000\\Desktop\\appdatafile.json”)); //result in java.lang.OutOfMemoryError: Java heap space br = new BufferedReader(new InputStreamReader( new FileInputStream(“C:\\Users\\brian_000\\Desktop\\appdatafile.json”), “UTF-16”)); } catch (FileNotFoundException e) { // TODO Auto-generated catch block […]

Hibernate / JPA + Derby – SELECT语句在GROUP BY,ORDER BY或选择列表中包含太多项

我使用Hibernate与Derby DB进行JPA DB映射。 对于复杂的对象结构,我得到“org.apache.derby.client.am.SqlException:SELECT语句在GROUP BY,ORDER BY或选择列表中有太多项”: org.apache.derby.client.am.SqlException: SELECT statement has too many items in GROUP BY, ORDER BY or select list. org.apache.derby.client.am.Statement.completeSqlca(Unknown Source) org.apache.derby.client.net.NetStatementReply.parsePrepareError(Unknown Source) org.apache.derby.client.net.NetStatementReply.parsePRPSQLSTTreply(Unknown Source) org.apache.derby.client.net.NetStatementReply.readPrepareDescribeOutput(Unknown Source) org.apache.derby.client.net.StatementReply.readPrepareDescribeOutput(Unknown Source) org.apache.derby.client.net.NetStatement.readPrepareDescribeOutput_(Unknown Source) org.apache.derby.client.am.Statement.readPrepareDescribeOutput(Unknown Source) org.apache.derby.client.am.PreparedStatement.readPrepareDescribeInputOutput(Unknown Source) org.apache.derby.client.am.PreparedStatement.flowPrepareDescribeInputOutput(Unknown Source) org.apache.derby.client.am.PreparedStatement.prepare(Unknown Source) org.apache.derby.client.am.Connection.prepareStatementX(Unknown Source) org.apache.derby.client.am.Connection.prepareStatement(Unknown Source) org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:505) org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:423) org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:139) org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1547) org.hibernate.loader.Loader.doQuery(Loader.java:673) org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236) org.hibernate.loader.Loader.loadEntity(Loader.java:1860) org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:48) org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:42) org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3044) […]

在Google Cloud Dataflow中使用带有复杂PCollection类型的TextIO.Write

我有一个看起来像这样的PCollection: PCollection<KV<KV, Long>> windowed_counts 我的目标是将其写为文本文件。 我想过用的东西: windowed_counts.apply( TextIO.Write.to( “output” )); 但我很难正确设置Coders。 这是我认为会起作用的: KvCoder kvcoder = KvCoder.of(KvCoder.of(StringUtf8Coder.of(), AvroDeterministicCoder.of(EventSession.class) ), TextualLongCoder.of()); TextIO.Write.Bound io = TextIO.Write.withCoder( kvcoder ); windowed_counts.apply( io.to( “output” )); 其中TextualLongCoder是我自己的AtomicCoder的子类,类似于TextualIntegerCoder。 EventSession类注释为使用AvroDeterministicCoder作为其默认编码器。 但是有了这个,我得到了包含非文本字符等的乱码输出。有人可以建议你如何将这个特定的PCollection写成文本吗? 我确信这里有一些显而易见的东西……

Java滚动背景

你会如何在Java中滚动背景,让它看起来像一个精灵正在移动? 我正在使用Applet。 有没有比让游戏中的所有对象向左或向右移动更有效的方法?

什么时候在java中包装私有(没有显式修饰符)?

我一直在阅读教程控制对类成员的访问 。 我很困惑使用package-private可能是一个很好的用例。 因为据我所知,您可以随时将包声明更改为此类的包声明,并将其视为公共类。 我知道这不是一件好事,但是什么阻止了我?

根据步行速度在2个GPS位置之间插值

问题: 鉴于两个位置: L 1 =(纬度1 ,经度1 ,时间戳1 ) , L 2 =(纬度2 ,经度2 ,时间戳2 ) , 以及可配置但恒定的移动速度: v =每秒1.39米 (例如)。 我们如何在这两个位置之间进行插值以估算用户从L 1到L 2的位置 ? 我一直在寻找这个问题的解决方案,到目前为止我发现,对于小距离(远离极点),可以使用线性插值。 所以,我在维基百科上查找了线性插值 ,发现了这个: // Imprecise method which does not guarantee v = v1 when t = 1, // due to floating-point arithmetic error. float lerp(float v0, float v1, float t) { […]

为什么StAX创建XML比DOM慢?

我试图测量StAX和DOM创建两个相同文档所需的时间。 我不知道为什么DOM在创建XML方面更快。 也许我的StAX编写器代码不是很好。 所以这里是StAX(更长的代码) public static final int pocet =100000; try { String encoding = “UTF-8”; XMLOutputFactory f = XMLOutputFactory.newInstance(); XMLStreamWriter w = f.createXMLStreamWriter( new FileOutputStream(subor), encoding); w.writeStartDocument(encoding, “1.0”); w.writeCharacters(“\r\n”); w.writeStartElement(“Noviny”); for (int i = 1; i <= pocet; i++) { w.writeCharacters("\r\n "); w.writeStartElement("Autor"); w.writeCharacters("\r\n "); w.writeStartElement("Id"); String ID = Integer.toString(i); w.writeCharacters(ID); w.writeEndElement(); w.writeCharacters("\r\n "); […]

apk创建的Proguard问题

好的,这让我疯狂了一天。 我主要是一个iOS人,所以我不太了解Proguard和东西。 我制作了一个包含Dropbox和Google Drive API的Android应用。 如果我通过Eclipse在手机上部署它,该应用程序工作得很好但是当我尝试导出用于apk文件生成的应用程序时,我在控制台上收到了一个令人讨厌的错误。 我的project.properties文件是这样的…… # To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt:proguard-google-api-client.txt # Project target. target=android-17 android.library=false 错误对话框是这样的… PROJECT_FOLDER_NAME / proguard-project.txt不存在或不是常规文件 所以我编辑了我的project.properties并删除了proguard-project.txt部分。 现在在创建apk时我在控制台上遇到这些错误… [2013-05-15 18:48:28 – BackMyAppUp] Proguard returned with error code 1. See console [2013-05-15 18:48:28 – BackMyAppUp] Note: there were 367 […]

Java中的远程打印模块

我正在开发一个应用程序,它将运行基于Web的销售点界面。 销售点PC(目前我不确定它是否可以在Linux或Windows上运行)必须附加一个财务打印机,但与任何Web应用程序一样,它是处理所有内容的服务器。 服务器和PoS机器都在同一个LAN上。 我必须实时发送销售数据,并通过使用串口的财务打印机,因此打印PDF甚至网页都不是一种选择。 我被告知我可以在客户端上有一个小应用程序监听Web服务,而后者又与打印机而不是服务器或浏览器进行通信,但是不知道如何做到这一点。 此外,我很可能需要收听任何打印机反馈(例如,打印机生成的优惠券号码)并将其交还给服务器。 有任何想法吗?

在TDD中,在重构期间将主类拆分为子类

我试图关注TDD并且对它有点新意。 我有一个要实现的接口(Java)。 所以我开始为接口行为编写测试用例,使它们失败并通过添加或修改代码来修复它们。 但是,正如我看到主类的大小越来越大,我将主类打破成单独的类。 但对于某些子类,我意识到最好单独测试它们并在主类测试用例中模拟它们。 但是当我这样做时,我不得不再次重写主类测试用例(对于移动的代码),导致大量的流失和重复工作。 我在实施TDD方法方面做错了吗?