Java字符串基于16位宽字符,如果没有明确的规范,它会尝试执行围绕该假设的转换。
以下示例代码直接以字节形式写入和读取数据,即8位数字,其含义与ASCII相关。
import java.io.*;
public class RWBytes{
public static void main(String[] args)throws IOException{
String filename = "MiTestFile.txt";
byte[] bArray1 =new byte[5];
byte[] bArray2 =new byte[5];
bArray1[0]=65;//A
bArray1[1]=66;//B
bArray1[2]=67;//C
bArray1[3]=68;//D
bArray1[4]=69;//E
FileOutputStream fos = new FileOutputStream(filename);
fos.write(bArray1);
fos.close();
FileInputStream fis = new FileInputStream(filename);
fis.read(bArray2);
ByteArrayInputStream bais = new ByteArrayInputStream(bArray2);
for(int i =0; i< bArray2.length ; i++){
System.out.println("As the bytem value: "+ bArray2[i]);//as the numeric byte value
System.out.println("Converted as char to printiong to the screen: "+ String.valueOf((char)bArray2[i]));
}
}
}
7位ASCII码的固定子集是可打印的,A = 65,例如,10个对应于“新行”字符发现和“印刷”时,其降低在屏幕上的一行。存在操纵面向字符的屏幕的许多其他代码,这些代码是不可见的并且操纵屏幕表示,如标签,空格等。还有其他控制字符,例如具有敲响铃声的目的。
127以上的高8位定义为执行者想要的任何内容,只有下半部分具有相关的标准含义。
对于一般的二进制字节处理,没有这样的限制,它们是代表数据的数字。只有在试图在屏幕上打印时,才能以各种方式变得有意义。
我们可以看到一些代码吗? – Tim 2011-12-16 01:07:40
已将一些代码添加到 – Rohan 2011-12-16 01:09:45