草庐IT

$二进制

全部标签

java - 使用 ReSTLet 客户端发送二进制数据

我正在尝试使用ReSTLet发送一个byte[](使用PUT),但我找不到有关如何执行此操作的任何信息。我的代码如下所示:Requestrequest=newRequest(Method.PUT,url);request.setEntity(WHATDOIPUTHERE?,MediaType.APPLICATION_OCTET_STREAM);我曾期望找到与ByteArrayRepresentation类似的东西,就像有一个JsonRepresentation和一个StringRepresentation,但我找不到任何东西。 最佳答案

java - Log4j 不支持二进制日志记录格式?

我需要将Log4j日志转换为二进制格式,以便可以轻松地对日志进行机器解释。我知道我可以为此目的使用XML,但不希望关联的文件大小膨胀或解析开销。整个布局系统似乎本质上是基于字符串的,这意味着我不能使用漂亮的文件滚动附加程序。LoggingEvent是可序列化的,所以我正在考虑自己编写一个二进制文件附加程序,但我觉得我不应该在这里涉足新领域。我是否漏掉了一些明显的东西? 最佳答案 我最近遇到了一个非常相似的问题。我不得不将日志行写入二进制格式,但也想让所有其他附加程序正常工作。我所做的是实现我自己的appender,它扩展了Appen

以汇编语言的二进制表示

我正在研究集会语言及其数据类型,并遇到了.float。我宣布.float变量命名Float并将其价值分配为10.23。我使用GNU汇编v2.28组装它,然后使用GNU链接器v2.28链接对象文件以创建可执行的二进制文件。这是我的程序:.dataHelloWorld:.ascii"HelloWorld!\n"ByteLocation:.byte10Int32:.int2Int16:.short5Float:.float10.23IntArr:.int3,6,7,8,10.bss.commLargeBuffer,1000.text.globl_start_start:nopmovl$1,%eaxm

java - 从 web 服务返回大块二进制数据的最佳方法是什么?

我正在实现一个返回二进制文件内容的网络服务。这些文件大约有100MB大。Web服务和客户端构建在Axis2之上。返回数据的方法的返回类型最好是什么?我尝试了byte[],但我总是在服务器端遇到OutOfMemoryErrors。另外,我不太高兴将整个文件内容存储在内存中。有没有我可以使用的类似流的东西? 最佳答案 可以不返回数据,而是返回一个临时URL指向这个保存为临时文件的大结果吗?或者您可以将您的文件作为一系列较小的结果返回吗? 关于java-从web服务返回大块二进制数据的最佳方法

java - 为什么 Java 中的十六进制实数需要指数

例如,在Java中,这是一个十六进制数0x10。0x10.2P2是一个正确的十六进制double值。但为什么0x1f.2不正确?为什么我们不能使用它,虽然0x1f.2P1应该给出相同的结果但它有效? 最佳答案 好吧,如果您的意思是为什么,我们将不得不希望其中一位负责语法的人会插话。在我看来,使指数可选不会损害解析文字的能力,但我没有详细考虑过。我所能提供的是JavaLanguageSpecification§3.10.2需要它:Forhexadecimalfloating-pointliterals,atleastonedigiti

java - 从同一个 FileInputStream 中读取字符串和二进制文件

我有一个文件,开头包含一些纯文本,结尾是二进制内容。二进制内容的大小由我阅读的一些纯文本行决定。我正在使用BufferedReader来读取单独的行,但是它没有公开任何方法来引用读取字节数组。DataInputStream的readUTF不会一直读取到行尾,并且readLine方法已弃用。使用底层FileInputStream读取返回空字节数组。关于如何解决这个问题有什么建议吗?privateDOTDataInfoparseFile(InputStreamstream)throwsIOException{DOTDataInfoinfo=newDOTDataInfo();Buffered

java - 打印级别顺序二进制搜索树格式

我已经实现了以下代码来按级别顺序打印二叉搜索树。publicvoidprintLevelOrder(intdepth){for(inti=1;it,intlevel){if(t==null){return;}if(level==1){System.out.print(t.element);}elseif(level>1){printLevel(t.left,level-1);printLevel(t.right,level-1);}}我想弄清楚如何改进我的代码以使其以某种格式打印出来。举个例子,给定一棵树1/\23//\456目前它打印如下:123456我正在寻找它来打印如下:Leve

java - 二进制和文本结构(数据包)的高效解码

背景有一个著名的工具叫做Wireshark.我已经使用它很多年了。这很棒,但性能是个问题。常见的使用场景包括几个数据准备步骤,以便提取数据子集以供稍后分析。如果没有这一步,过滤需要几分钟时间(如果痕迹很大,Wireshark几乎无法使用)。实际的想法是创建一个更好的解决方案,快速、并行和高效,用作数据聚合器/存储。要求实际要求是使用现代硬件提供的所有电源。我应该说不同类型的优化都有空间,我希望我在上层做得很好,但技术是现在的主要问题。根据当前的设计,有几种类型的数据包解码器(解析器):交互式解码器:解码逻辑可以在运行时轻松更改。这种方法对协议(protocol)开发人员非常有用——解码

java - 双转十六进制字符串和返回

在Java中将double字符串转换为十六进制字符串相当简单。但是我该怎么做呢?我的代码在下面,我已经注意到抛出NumberFormatException的地方(大约下降2/3)。publicclassHexToDoubleTest{publicstaticvoidmain(Stringargs[]){//ThisisthestartingdoublevaluedoubledoubleInput=-9.156013e-002;//ConvertthestartingvaluetotheequivalentvalueinalonglongdoubleAsLong=Double.doubl

java - 二进制搜索 O(log n) 算法在顺序列表中查找重复项?

有谁知道在连续数字列表中查找重复项的比线性算法更快的算法?我现在在Java工作,但任何语言或伪代码都可以。例如,给定这个int[]输入:0|1|2|3|4|5|6|7|7|8|9输出将是索引或值“7”。我知道在O(n)线性时间内进行明显的遍历,但我正在尝试通过O(logn)的二进制搜索来查看这是否可能时间。 最佳答案 如果您假设数字必须从0开始并以1递增,您可以将中间值与索引进行比较。如果中间相同就走高,如果中间不一样就走低。这将为您提供二进制搜索时间O(log2N)。唯一的区别是您是在与索引进行比较,而不是与固定值进行比较。pub