以前,将字符串写入字节数组中是这样写的,现在getBytes(0, iLength, bSend, 4); 这样的方法过时了,新方法怎么用呢?byte bSend[] = new byte[32];
String str = "abcdefg";
int iLength = str .length();bSend[0] = 2;  bSend[1] = 0; bSend[2] = 0; bSend[3] = 0;
str.getBytes(0, iLength, bSend, 4); bSend = str.getBytes() ????????????????
怎样才能将字串写到指定的数组位置上,如上面从下标为4的开始写,写7个字符。

解决方案 »

  1.   

    以我对String的源代码研究,在Java中提供了两个getBytes的方法,一个是搂主使用的方法:
    String.getBytes(0, iLength, bSend, 4); 另外就是getBytes()和getBytes(Encoding)。搂主的方法主要是以前在英文环境(ISO8859-1)下面使用的,String中的每一位都能对应到一个byte上面。
      

  2.   

    Java快活林为你提供各类的JAVA相关问题解答目前拥有成员120人.
      群号:9753340  欢迎你的加入
      

  3.   

    使用getBytes()方法获取编码,缺省的时候采用的是file.encoding对应的编码方式;如果你不希望file.encoding方式返回的字节数组,请使用getBytes(encoding),从外部获取编码方式。坚决不要使用搂主原来的方法,如果原始字符串不是ISO8859-1的编码,不可能正确。
      

  4.   

    在获取完byte数组后,你再看看使用byteBuffer的方式来拼接你的byte数组
      

  5.   

    仔细看看String的getBytes方法,以及编码参数。
      

  6.   

    To chuanyuan88(船员) :
    正因为手头没有资料才上这里问。在JBuider中,getBytes(int, int, byte[], int); 这个方法被警告为已过时,我只是想知道没有过时的,等同功能的方法怎么写。注:虽被告知是过时的,但编译时还是没有问题。
      

  7.   

    /*
      对应于getChars(int srcBegin, int srcEnd, char dst[], int dstBegin)
    */String temp ="want to test string"
    Byte[] bytes = temp.getBytes();
    int j = dstBegin;
    int n = offset + srcEnd;
    int i = offset + srcBegin;while (i < n) {
            dst[j++] = bytes[i++];
            }呵呵。里面出现的没有定义的变量就是你原先要调用函数的参数植