java 全部以byte进行,不做任何转换.
c++  当然是char *

解决方案 »

  1.   

    思路很多人同意。
    CLIENT:
    文件--》流---》字节组--字节符
    SERVER 字节符--》字节组--》流--》文件问题出在SERVER端从字节符到字节组时:
    得到的不是字节码,我认为是下面这个函数字节符.getBytes(charset)charset该用什么编码方式?
      

  2.   

    可以肯定的是:楼主的思路是对的
    无非就是先把字节转byte,然后传到服务端。
    到服务端在转回来。
    不过可惜就是不知道在c++那是否支持这个了
      

  3.   

    CLIENT代码:    byte[] buffer = new byte[1024];      fis = new FileInputStream("file.xml");      int length = fis.read(buffer);      while (length > 0) {
            String bytes="";
            for(int i=0;i<length;i++){
                bytes = bytes+buffer[i];
            }   
            String msg = "<Res>";
            msg = msg + "<coCode>02</coCode>";        msg = msg + "<File>" + bytes + "</File>";
            msg = msg + "<orgCode>001</orgCode>";
            msg = msg + "</Res>";        //发送消息
           
             length = fis.read(buffer);
        } 
    Server代码:xml解析后,我得到整个bytes,然后byte[] b = bytes.getBytes();
      

  4.   

    UTF-8不行。是否byte[]不能这样拆分?
    for(int i=0;i<length;i++){
                bytes = bytes+buffer[i];
            }   
      

  5.   

    假设你要传输的文件内容是“测试文件传输”,处理得到其16进制编码为“B2E2CAD4CEC4BCFEB4ABCAE4”,把16进制编码放到e:/source.txt文件,模拟要传输的xml文件,使用以下程序就可以得到字符串了
        try {
          FileInputStream fi = new FileInputStream("e:/source.txt");
          byte[] tempBytes = new byte[1000];
          fi.read(tempBytes);
          String readString = new String(tempBytes).trim();
          byte[] readBytes = new byte[readString.length()/2];
          int k = 0;
          for (int i = 0;i<readString.length();i=i+2){
            readBytes[k] = (byte)Integer.decode("0x"+readString.substring(i,i+2)).intValue();
            //System.out.println(readBytes[k]);
            k++;
          }
          System.out.println(new String(readBytes));
        }
        catch (Exception ex) {
          System.out.println(ex);
        }