能读取出来,但java的byte跟c#的byte不一样,所以我如何parser,在c#中,直接读取readbyte,和readint.readshort.但在java中读取一个超出127的值的byte时,解析出来跟c#不一样
---读取c#的page.从流中取出来的的byte跟c#不同,,但这个byte[]是c#中的guid数组,我在java下怎么还原成相应的uuid,java中没有guid两种语言的byte convert不一样,所以转出来的uuid跟guid不相同,c#--guid--byte[] ----- java byte[] -- uuid
另外一种情况 c# 中byte[]是一些数据, 我如何在java中读取,比于byte[]中的第[1,2]是c#是的ushort  3是byte [4-12]是double......etc..java中如何正确读取,另一个问题,如果c#或者c++端,把byte存成大于127的值 比于233这个值存到byte中,我java端读取这个值时不是会出错呀? ----

解决方案 »

  1.   

    看来我的中文要加强了, 看了半天硬是没有看懂你的意思你是要C#和Java通信,两者的byte不一样?还是说JAVA中的byte要转化为字符串?JAVA中byte转化为字符串 String str = new String(byte[] byteArr);
      

  2.   

    不好意思。!这样说吧,我在c#端做了一个asp.里面生成一个guid,然后把guid转成c#的byte[] ---》http Response out 出来。java 端 call 这个asp 从url.openstream 中得到inputstream  inputstream is = new inputstream(url.openstream)  ;
    byte[] b = new byte[16] //因为guid是16个byte
    is.read(b);我现在查看b中的byte,发现跟C#从asp读回来的b不一样,就是中间超过127的byte在java端是负数并且我用UUId.nameformat(b)得到的UUID跟C#端的new guid(byte[])的id不一样,所以不知如何解析另外一个问题是如果我从asp返回的C#端的别一种byte[]内容,
    比于C#端
    是一个byte+doube+ushort+byte  内容是(231,132.22,2,231)我又如何在java端解析同样的数据出来231,132.22,2,231呢不知现在说明白了没有
      

  3.   

    做成String来传递不可以吗?这样应该没问题吧。如果你从网络上读取出来的byte[] 数组是一个String来的,你希望转换成String方便程序控制处理。对于Java来是特别简单
    W_7K*_0l?Ye ]T3只需要String s = new String(byte,"utf-8") ; 上面是指定编码了的。
    -|'BUd[)nvL ~v3
    qT*i b#G#V3C#呢,也是特别简单,不过有了java思想,老是以为可以通过java的方式来做。可却发现没有sbyte这东西。
    8V:[-CH(c9_ke3
    9ul#s b b?3System.Text.Encoding.Default.GetString(x); 这个是C#的处理方式。
      

  4.   


    当然不会一样,你c#输出guid的时候先base64编码一下,然后java程序访问你这个asp页面,把获得的数据用base64解码,就可以得到正确的byte数组了
      

  5.   

    楼上的仁兄,你说用base64解压出来,关键是如果解压出来前我得放在byte这个类型中吧,但关键时我在放时就不行呀,流出来的byte[]都是-128-127区间的,这样再解码出来的guid就是不对的呀我的数据源就是C++/c#定义的数据结构,C#用这种结构存data,然后转成byte,再存入到数据库中的,所以数据
    库中的存是就是byte就是按照0-255来存,java没有0-255的byte所以我根本就不能用byte来读取流,郁闷。。有没有别的方法,怎么感觉如果这样哪java端根本就读不出来,难道非要去改数据input时不能用c#的byte只能用java和c#共有有,并且一样的类型比于sbyte就是java的byte,
      

  6.   

    并且我的asp就是一个走httphandel的,取出数据(binrary) 然后丢出去,所以不可能在这里再从binrary转成string,然后传出去,这不现实呀,如果我的data 很大,这样给有web服务器添加压力,并流量一大,很容易挂的或影响performance
      

  7.   

    先gzip压缩在base64,不过这样速度慢点,base64比较慢你8楼说的问题我也不知道怎么解决,没用过C#
      

  8.   

    没一个懂的,都是半桶水楼主说的很明白了,就是java的byte,C#怎么接收什麽java byte转string或是 C# byte转string就不要出来说了