Tag: 二进制数据

如何使用POST上传二进制数据

我的代码中有这样的东西: String boundary = “thisIsMyBoundaryString”; StringBuilder body = new StringBuilder(); … byte[] data = bos.toByteArray(); body.append(new String(data)); body.append(“\r\n–” + boundary + “–\r\n”); String entity = body.toString(); 我正在构建一个POST请求,需要插入一些二进制数据(JPEG压缩位图)。 附加byteArray后,我想追加newLine和边界字符串, 但是StringBuilder被破坏了 – 似乎来自添加边界的字节 从那时起就变得错位了 并且它们不再被解释为我的原始字符串,而是作为一些随机字符。 这是发生在这里的事吗? 我该如何解决这个问题? 也许我应该在追加边界之前在byteArray中添加一个填充字节? 将二进制数据添加到POST请求的正确方法是什么? 请注意,此处不能使用Base64编码。 [编辑] 解决方案是使用MultipartEntity来发出此类请求 并忘记手动添加边界。 这是相关的代码片段: FileBody bin = new FileBody(new File(Environment.getExternalStorageDirectory() + “/” + FILE_NAME)); MultipartEntity entity = […]

如何将二进制数据转换为Zip文件?

现在我正在处理将二进制数据转换为zip文件的任务 我正在调用一个URL并从服务器获得响应 A @B ArE⏾ 7 ϫ f N걺Yg o_M^ D T UX_ e? hi \ ڂ( 0 rm ‘ ed :6h k ڗ fnp 7 ) : N U viR ,) II M II M Np M 7 n !A!))AAFAq)Q) yy . ? ֞ Ɲ O nc f w ʰ 6 32 ƢZZ N0 […]

在java中将图像转换为二进制数据(0和1)

我想从URL中读取图像并将其转换为二进制数据。 请帮我.. byte[] data = null; ByteArrayOutputStream bas = null; try { URL u = new URL( “http://sofzh.miximages.com/java/eso0844a.jpg”); HttpURLConnection con1 = (HttpURLConnection) u.openConnection(); con1.setAllowUserInteraction(true); con1.setRequestMethod(“GET”); con1.connect(); InputStream is = con1.getInputStream(); BufferedImage imgToServe = null; if (is != null) { imgToServe = ImageIO.read(is); } bas = new ByteArrayOutputStream(); ImageIO.write(imgToServe, “jpg”, bas); File f = new File(“C:\\img.jpg”); […]

如何从Spring WebClient的ClientResponse中获取最佳字节数组?

我正在尝试从Spring 5(5.0.0.RC2)开始使用反应式编程的代码库中的新WebClient ,并且我已成功将JSON响应从端点映射到我的应用程序中的DTO,这非常好用: WebClient client = WebClient.create(baseURI); Mono dto = client.get() .uri(uri) .accept(MediaType.APPLICATION_JSON) .exchange() .flatMap(response -> response.bodyToMono(DTO.class)); 但是,现在我正在尝试使用协议缓冲区(二进制数据作为application/octet-stream )的端点的响应体,所以我想从响应中获取原始字节,然后我将映射我自己的一个对象。 我使用Google Guava的Bytes让它像这样工作: Mono bytes = client.get() .uri(uri) .accept(MediaType.APPLICATION_OCTET_STREAM) .exchange() .flatMapMany(response -> response.body(BodyExtractors.toDataBuffers())) .map(dataBuffer -> { ByteBuffer byteBuffer = dataBuffer.asByteBuffer(); byte[] byteArray = new byte[byteBuffer.remaining()]; byteBuffer.get(byteArray, 0, bytes.length); return byteArray; }) .reduce(Bytes::concat) 这有效,但有更简单,更优雅的方式来获取这些字节吗?

如何将二进制数据转换为图像?

在我的Android应用程序中。 我从代码中获取了jpeg图像的二进制代码,如下所示。 byte[] val = stream.toByteArray(); BigInteger bi = new BigInteger(val); String s = bi.toString(2); 此字符串s打印图像的二进制值。 我的问题是如何将这种二进制格式转换为jpeg图像?

使用二进制格式的Java在数据库中存储图像

我正在解决我的项目并遇到一些问题,我搜索了它,但找不到完整的学习资源,我需要的是使用我的Java程序将图像存储在SQL Server数据库中,并且需要返回检索,图像尺寸不大,介于30到50 K之间,我可以使用toolKit中的getImage()方法从我的磁盘加载图像 Image imm = Toolkit.getDefaultToolkit().getImage(“URl”); ,但我不知道如何将该图像转换为二进制格式并存储在数据库中,然后检索从数据库返回。 我想通过查看几个站点将它存储在VarBinary中,我发现SQL Server中的图像类型很快就会退回。

是否存在用于二进制文件解析的Java框架?

我的问题是,我想用一个在JAVA中实现的通用解析器来解析不同类型的二进制文件。 也许用一个配置文件描述文件格式,该配置文件由解析器读取或创建根据某种解析规则解析文件的Java类。 我在互联网上搜索了很多,但在这个主题上几乎找不到任何东西。 我发现的只是涉及编译器生成器(Jay,Cojen等)的东西,但我认为我不能用它们来生成解析二进制文件的东西。 但我在这个假设上可能是错的。 是否有任何框架特别容易解析二进制文件或任何人可以给我一个提示如何使用解析器/编译器生成器这样做? 更新 :我正在寻找可以编写配置文件的东西 file: header: FIXED(“MAGIC”) body: content(10) content: value1: BYTE value2: LONG value3: STRING(10) 它会自动生成一些东西来解析以“MAGIC”开头的文件,然后是内容包的十倍(它本身由一个字节,一个长字节和一个10字节的字符串组成)。 Update2 :我发现了一些类似于我正在寻找的东西,“ 构造 ”,但遗憾的是这是一个Python框架。 也许这有助于某人得到一个想法,我正在寻找什么。