小编dop*_*ish的帖子

给我一个Binary Parser.二进制数据的解析器

所以,我得到了这些数据.从网络套接字,或从文件中.我正在拼凑将解释数据的代码.读取一些字节,检查一些标志,一些字节表示后面有多少数据.读入那么多数据,冲洗,重复.

这个任务让我想起解析源代码.我对lex/yacc和antlr很满意,但他们不能胜任这项任务.你不能将比特和原始字节指定为标记(好吧,也许你可以,但我不知道如何),你不能把它们哄成"读取两个字节,使它们成为无符号的16位整数,称之为n,然后读取n个字节."

然后,当以系统方式定义协议/数据格式的规范(并非所有规范都是)时,应该有一种系统的方式来读取根据协议格式化的数据.对?

必须有一个工具来做到这一点.

binary parsing protocols

21
推荐指数
2
解决办法
5108
查看次数

人们使用类加载的是什么?

因此,每本Java教科书都讨论了Java的灵活性,因为它可以在运行时加载类.只需拼凑一个字符串并将其交给它Class.forName(),然后抓住ClassNotFoundException并处理它.这个理论太多了.

您能举例说明您是如何使用Java类加载来实现一个本来不可能或不容易的功能的吗?请注意,我不是问"有什么伟大的事情可以做什么?" - 我正在寻找真实世界的例子,无论是开源应用程序还是 - 如果你能够在不提供太多细节的情况下描述它 - 一个专有的应用程序.

编辑:当然,VM会根据需要懒惰地加载类.只要我确信我所需要的所有课程都在那里,这就是幕后的事情.我该怎么处理ClassNotFoundException?假设我写了十页文本,并且PrinterDriver找不到该课程.

java classloader

16
推荐指数
3
解决办法
1749
查看次数

半可编辑文件(例如配置文件)和版本控制 - 最佳实践?

所以,我今天通过检查配置文件杀死了构建.它知道服务器的位置(想想SQL服务器等),而且我一直在反对在我的盒子上运行的服务器.通常,或者更确切地说,在其他情况下,我们会针对中央服务器运行.当然,每日构建没有找到"我的"服务器,因此破损.然后,再次编辑配置文件以在签入之前指向"正常"服务器,并在签入之后再次编辑它.

我一直想让VC忽略配置文件,这样就不会意外地检查它.另一方面,存储库应包含一个干净,可用的文件版本.我不可能忽略它,同时检查它,现在,我可以吗?

所以,我正在寻找的是一种方法,有一个文件,错误,检查,但永远不会检入.至少在最常见的情况下 - 如果配置文件发生重大变化,一些特殊的程序,以获得进入存储库的新版本是可行的.

如果您以前遇到过这个问题,我会对您找到的任何解决方案感兴趣.只要它们不打破构建,那就是;)

svn cvs version-control

5
推荐指数
1
解决办法
892
查看次数

需要更简单的Java/SQL数据传输

所以,我正在使用jdbc与MySQL数据库通信.对于许多表和许多查询/视图,我创建了一个类,它封装了表的一行或查询/表结果.对DB的访问返回这样一个类的一个对象(当我确切地知道只有一个匹配的行时)或这些对象的Vector.

每个类都有一个工厂方法,该方法从ResultSet的一行构建一个对象.需要大量的ResultSet.getXXX()方法,以及关于哪个值在哪个列中的详细记账,特别是在更改表/查询/视图布局之后.

创建和维护这些对象是一项无聊,工作密集且令人头脑麻木的任务.换句话说,一种由工具完成的任务.它应该读取SQL(MySQL变体,唉)并生成Java代码.或者,至少,给我一个表/查询/视图的表示(XML?DOM?),允许我自己进行java代码生成.

你能说出这个工具吗?

java sql jdbc

4
推荐指数
1
解决办法
1554
查看次数

标签 统计

java ×2

binary ×1

classloader ×1

cvs ×1

jdbc ×1

parsing ×1

protocols ×1

sql ×1

svn ×1

version-control ×1