如何将 Sting a = "TEST2008" 生成二进制文件 如何将 Sting a = "TEST2008" 生成二进制文件? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 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); } String str = "TEST2008";FileOutputStream outFile= new FileOutputStream("34.class");DataOutputStream out=new DataOutputStream(outFile);out.writeBytes(str);out.close(); String str = "TEST2008"; FileOutputStream outFile= new FileOutputStream("34.class"); DataOutputStream out=new DataOutputStream(outFile); out.writeBytes(str); out.close();这个生成的时二进制文件吗?好像不是 楼主 这个问题你在另一个帖子还没解决么???DataOutputStream 操作的就是二进制文件非得写到文件里显示乱码才叫二进制??有些文本编辑器直接就显示文本的 中间有些转换过程我们是看不到的个人是这么理解的 如有不妥之处 敬请谅解 楼主好像在那个帖子是这么写的吧:out.writeChars(str); writeChars是按照Unicode格式写文件,如果写的内容是"TEST2008",得到的长度是16Bytes,如果用writeBytes(str),得到文件长度则是8Bytes. 对了,上面得到的文件应该算16进制的吧,实际上是类似于OAOD(例)这样的字节,如果真要求是二进制,那把0A看成00001010吧。要不就像1楼那么挨个字符变换,很无聊对不? To zazxzx: 是这样的,我手中一个对应文本的格式的二进制文件。我按照要求不能生成该格式的文件。其中PRODUCT_CODE=NC100266SERIAL_NUMBER=100116 为EBCDIC 编码!具体如下:文本内容:PRODUCT_CODE=NC100266SERIAL_NUMBER=100116DISPLAY_PRODUCT_CODE=AP3C33SCE1_COMPANY_ID=CE1COCE1_EMPLOYEE_NUMBER=1234567CE1_FROM_CHARGE_DATE=20061122CE1_TO_CHARGE_DATE=20071111CE1_TERRITORY_CODE1=CE1T00001CE1_FROM_POSITION_DATE1=20061122CE1_TO_POSITION_DATE1=20071022CE1_TERRITORY_CODE2=CE1T00002CE1_FROM_POSITION_DATE2=20071023CE1_TO_POSITION_DATE2=20071111CE2_COMPANY_ID=CE2COCE2_EMPLOYEE_NUMBER=1234568CE2_FROM_CHARGE_DATE=20071112CE2_TO_CHARGE_DATE=20081119CE2_TERRITORY_CODE1=CE2T00001CE2_FROM_POSITION_DATE1=20071112CE2_TO_POSITION_DATE1=20080512CE2_TERRITORY_CODE2=CE2T00002CE2_FROM_POSITION_DATE2=20080513CE2_TO_POSITION_DATE2=20081119KEY_OPERATOR_NAME=川崎二郎DEPARTMENT_SECTION_NAME=OS開発部二課CUSTOMER_GRADE=CRESPONSE_GRADE=RASSIGNMENT=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 ..@@.. String.getBytes 我来了,顺便把链接贴上http://topic.csdn.net/u/20071129/10/67c37aa9-909f-4c04-9c49-60203cdfa369.html 问个计算机网络的初级问题 Java字符数组 小问题 如何不通过get方法而改变javabean中的属性值? 如何在telnet下,实现模拟按键盘向下的方向键 两百分 那位大哥帮我完成一下的啊!! list.notify()的问题 连接sql server的问题 java程序,修改DNS地址。 java中可以直接写pl/spl语句吗? Java生成 6-8位 随机数 java反射 我需要频繁调用一个音乐文件,有什么方法可以只从磁盘读取一次,然后重复加以利用吗?
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); }
FileOutputStream outFile= new FileOutputStream("34.class");
DataOutputStream out=new DataOutputStream(outFile);
out.writeBytes(str);
out.close();
FileOutputStream outFile= new FileOutputStream("34.class");
DataOutputStream out=new DataOutputStream(outFile);
out.writeBytes(str);
out.close();这个生成的时二进制文件吗?好像不是
out.writeChars(str); writeChars是按照Unicode格式写文件,如果写的内容是"TEST2008",
得到的长度是16Bytes,
如果用writeBytes(str),得到文件长度则是8Bytes.
实际上是类似于OAOD(例)这样的字节,如果真要求是二进制,那把0A看成00001010吧。
要不就像1楼那么挨个字符变换,很无聊对不?
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 ..@@..
http://topic.csdn.net/u/20071129/10/67c37aa9-909f-4c04-9c49-60203cdfa369.html