前提: 公司与其他公司进行接口对接 需要使用Byte[]数据流传输数据

原本想法如下:直接IO生成就ok了

  1. using System;
  2. using System.IO;
  3. using System.Text;
  4. namespace StreamReader
  5. {
  6. class Program
  7. {
  8. public static void Main(byte[] buffer)
  9. {
  10. System.IO.File.WriteAllBytes(@"D:\合同文件demo.pdf",buffer);
  11. }
  12. }
  13. }

但是  生成的pdf 打不开。。。。。

本着办法总比困难多的想法  以为IO生成可能是有问题,具体问题出现在哪没有考虑就直接上第二种方法

Stream stream = new MemoryStream(buffer);

BinaryReader br = new BinaryReader(stream);
FileStream fs = File.Create(@"D:\合同文件demo.pdf");
fs.Write(buffer, 0, buffer.Length);
br.Close();
fs.Close();

结果 也是一首凉凉送自己。。

思前想后也没想出结果 用自己的pdf生成byte[]数据流然后使用以上两种方法均能生成可以打开的pdf 妈蛋。。开始怀疑对方给的数据流是否正确了

向对方要了数据流的原始文件 自己生成了byte[]数据流 前后一对比发现JAVA的数据流里有-8,-9带有‘-’号的数据 c#生成的则没有。。

百度一波 发现JAVA的byte的范围在 [-128,127] 有符号位 在C#中byte的范围在 [0,255] 无符号位

问题发现了 本来是想直接用笨方法解决的 后来继续翻了几个文章发现C#中sbyte的范围和JAVA的范围是一致的  哈哈

结果就是 http请求回来的数据流用sbyte接收 使用以上两种方法均可生成可正常使用的pdf文件

接口开发中 遇到的坑——Java byte与C# byte 数据转换问题的更多相关文章

  1. 关于http接口开发中json格式数据编码问题处理

    关于http接口开发中json格式数据编码问题处理 在实际工作中,接口很多时候返回json格式,但有时返回的格式会有编码问题 假设如下接口:http://service.test.com/interf ...

  2. 总结微信小程序开发中遇到的坑

    总结微信小程序开发中遇到的坑,一些坑你得一个一个的跳啊,/(ㄒoㄒ)/~~ 1,页面跳转和参数传递实例 首先说一下我遇到的需求有一个我的消息页面,里面的数据都是后端返回的,返回的数据大致如下,有一个是 ...

  3. celery开发中踩的坑

    celery开发中踩的坑 celery连接redis 当使用redis做broker,redis连接需要密码时: BROKER_URL='redis://:xxxxx@127.0.0.1:6379/0 ...

  4. 支付宝(alipay)即时到账收款接口开发中的那些事儿

    不会做,看看也可以会,要做好就还是需要多学习 国庆回来就一直没状态,看完<银河护卫队>,印象最深的竟然是只有两句台词的呆萌groot,昨天才休息一天,大耍大吃,今天还是把昨天的知识学习一下 ...

  5. 【EasyUI总结】EasyUI开发中遇到的坑

    普遍: 1.easyui在书写键值对的时候要注意是否要加引号,在需要加引号的地方不加则无法渲染: datagrid数据网格: 1.datagrid默认请求方式是post,如果要使用分页功能pagina ...

  6. AngularJS移动开发中的各种坑

    捂脸,辛酸泪ing...... 本文主要涉及部分在移动设备上特有的问题. 相对来说,Jquery侧重DOM操作,AngularJS是以视图模型和双向绑定为核心的. DOM操作的问题 避免使用 jQue ...

  7. 【Java】接口开发中关于接受和发送json的相关范例

    接受json package com.suneee.scn.wms.web.rocketmq; import java.util.List; import net.sf.json.JSONArray; ...

  8. 那些年Android开发中遇到的坑

    使用静态变量来缓存数据时,不管是在Application类还是其他类,都要注意因应用重建而引发的问题. 使用DecorView作为PopupWindow的anchorView时,在华为P7中它是显示在 ...

  9. 关于ionic开发中遇到的坑与总结

    这次是第二次使用ionic开发混合app,今天算是对这个框架做一个总结,基础的我就不再重复了,网上都有教程.我就说说自己的心得和遇见的各种坑, 之后会陆续补充,想到什么说什么吧. 1.关于ionic效 ...

随机推荐

  1. MySQL 建表时 date 类型的默认值设置

    在执行下面 SQL 语句时发现报错 CREATE TABLE `jc_site_access_pages` ( `access_date` date NOT NULL DEFAULT '0000-00 ...

  2. Oracle Rac 测试

      #还是使用之前的脚步来进行测试 #Author : Kconnie Pong Oracle@PONGDB:~> more load_balance.sh #!/bin/bash ..} do ...

  3. CAN波特率设置

    通过对CAN位定时寄存器CANBIT以及CAN波特率预分频扩展寄存器CANBRPE的设置可以得到需要的CAN通信波特率. CAN的位定时配置不当,将使得CAN模块无法按照目标波特率接入CAN网络,将导 ...

  4. Selenium+Python的开发环境搭建

    第一步:安装Python  https://www.python.org/ 注意:在cmd窗口中输入python,如果不是内部或者外部命令的需要配置环境变量Path ; 右击桌面我的电脑-->属 ...

  5. Solr之java实现增删查操作

    1.添加pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns=" ...

  6. Python_List对象内置方法详解

    目录 目录 前言 软件环境 列表List 修改列表的元素 插入列表元素 extend 将序列中的元素迭代的附加到list中 insert 在指定的索引号中插入一个元素 删除列表元素 del 删除Lis ...

  7. 递归选中easyui树

    $(function(){ // var data1 = [ // { // "id": 3, // "text": "3组织", // & ...

  8. 【Java学习笔记】LinkedList JDK1.6

    如下一段代码,在JDK1.6的LinkedList中,是下图这样存储的.有一个节点值为null的节点,叫做header,header的next是0,3的next是header,这是一个循环链表 Lin ...

  9. Toad oracle

    CJ2PFCQ6P49Q4WHQT2D03GNTVX2AN5DG6FWD04YL4QW625KT391J9YF38VKB92SNBWNW-RU-BOARD-BD cr2384

  10. java:Review(Oracle-HTML-CSS)

    20170708_review: 1.oracle: 对表的操作: 使用命令行建立一张表:create table 表名 (列名 列名的类型 primarty key, ....); alter ta ...