如何将 Sting a = "TEST2008" 生成二进制文件?

解决方案 »

  1.   

    public static void main(String[] args) {
            String string="TEST2008";
            String returnString = "";
       try {
    char[] charAry = new char[string.length()];
    for (int i = 0; i < string.length(); i++) {
    charAry[i] = (char) string.charAt(i);
    returnString = returnString + Integer.toString(charAry[i], 2);
    }
    } catch (Exception e) {
       e.printStackTrace();
    }
    System.out.println(returnString); }
      

  2.   

    String str = "TEST2008";
    FileOutputStream outFile= new FileOutputStream("34.class");
    DataOutputStream out=new DataOutputStream(outFile);
    out.writeBytes(str);
    out.close();
      

  3.   

    String   str   =   "TEST2008"; 
    FileOutputStream   outFile=   new   FileOutputStream("34.class"); 
    DataOutputStream   out=new   DataOutputStream(outFile); 
    out.writeBytes(str); 
    out.close();这个生成的时二进制文件吗?好像不是
      

  4.   

    楼主 这个问题你在另一个帖子还没解决么???DataOutputStream 操作的就是二进制文件非得写到文件里显示乱码才叫二进制??有些文本编辑器直接就显示文本的 中间有些转换过程我们是看不到的个人是这么理解的 如有不妥之处 敬请谅解
      

  5.   

    楼主好像在那个帖子是这么写的吧:
    out.writeChars(str); writeChars是按照Unicode格式写文件,如果写的内容是"TEST2008",
    得到的长度是16Bytes,
    如果用writeBytes(str),得到文件长度则是8Bytes.
      

  6.   

    对了,上面得到的文件应该算16进制的吧,
    实际上是类似于OAOD(例)这样的字节,如果真要求是二进制,那把0A看成00001010吧。
    要不就像1楼那么挨个字符变换,很无聊对不?
      

  7.   

    To zazxzx:  是这样的,我手中一个对应文本的格式的二进制文件。我按照要求不能生成该格式的文件。其中PRODUCT_CODE=NC100266
    SERIAL_NUMBER=100116 为EBCDIC 编码!具体如下:文本内容:PRODUCT_CODE=NC100266
    SERIAL_NUMBER=100116
    DISPLAY_PRODUCT_CODE=AP3C33S
    CE1_COMPANY_ID=CE1CO
    CE1_EMPLOYEE_NUMBER=1234567
    CE1_FROM_CHARGE_DATE=20061122
    CE1_TO_CHARGE_DATE=20071111
    CE1_TERRITORY_CODE1=CE1T00001
    CE1_FROM_POSITION_DATE1=20061122
    CE1_TO_POSITION_DATE1=20071022
    CE1_TERRITORY_CODE2=CE1T00002
    CE1_FROM_POSITION_DATE2=20071023
    CE1_TO_POSITION_DATE2=20071111
    CE2_COMPANY_ID=CE2CO
    CE2_EMPLOYEE_NUMBER=1234568
    CE2_FROM_CHARGE_DATE=20071112
    CE2_TO_CHARGE_DATE=20081119
    CE2_TERRITORY_CODE1=CE2T00001
    CE2_FROM_POSITION_DATE1=20071112
    CE2_TO_POSITION_DATE1=20080512
    CE2_TERRITORY_CODE2=CE2T00002
    CE2_FROM_POSITION_DATE2=20080513
    CE2_TO_POSITION_DATE2=20081119
    KEY_OPERATOR_NAME=川崎二郎
    DEPARTMENT_SECTION_NAME=OS開発部二課
    CUSTOMER_GRADE=C
    RESPONSE_GRADE=R
    ASSIGNMENT=
    UPDATE_FLAG=MA
    二进制文件文本:00000000: d5c3 f1f0 f0f2 f6f6 f1f0 f0f1 f1f6 c1d7  ................
    00000010: f3c3 f3f3 e240 c3c5 f1c3 d6f1 f2f3 f4f5  .....@..........
    00000020: f6f7 f2f0 f0f6 f1f1 f2f2 f2f0 f0f7 f1f1  ................
    00000030: f1f1 c3c5 f1e3 f0f0 f0f0 f1f2 f0f0 f6f1  ................
    00000040: f1f2 f2f2 f0f0 f7f1 f0f2 f2c3 c5f1 e3f0  ................
    00000050: f0f0 f0f2 f2f0 f0f7 f1f0 f2f3 f2f0 f0f7  ................
    00000060: f1f1 f1f1 c3c5 f2c3 d6f1 f2f3 f4f5 f6f8  ................
    00000070: f2f0 f0f7 f1f1 f1f2 f2f0 f0f8 f1f1 f1f9  ................
    00000080: c3c5 f2e3 f0f0 f0f0 f1f2 f0f0 f7f1 f1f1  ................
    00000090: f2f2 f0f0 f8f0 f5f1 f2c3 c5f2 e3f0 f0f0  ................
    000000a0: f0f2 f2f0 f0f8 f0f5 f1f3 f2f0 f0f8 f1f1  ................
    000000b0: f1f9 c0ee baea c6f3 cfba 2020 2020 2020  ..........      
    000000c0: 2020 a3cf a3d3 b3ab c8af c9f4 c6f3 b2dd    ..............
    000000d0: 2020 c3d9 4040 d4c1                        ..@@..
      

  8.   

    String.getBytes
      

  9.   

    我来了,顺便把链接贴上
    http://topic.csdn.net/u/20071129/10/67c37aa9-909f-4c04-9c49-60203cdfa369.html