JAVA编程笔记01-字符、文件读写
byte、bit、比特、字节、字符、char、String
1String = 1字符串 =n×(1字符=1char=(UTF-8下1、2、3或4)×(2 byte = 2 字节 = 8 比特 = 8bit))
bit是一个单独的量,为0或1;
byte也是一个单独的量,用十进制数字表示时,范围为-128~127;
byte和bit都被翻译成“比特”;
byte还被译为“字节”;
char代表一个单独的字符,不等于数字,可占1~4个字节;
char被翻译成“字符”,char数组被称为字符数组;
String等同于若干char的顺序排列,String译为字符串;
变量类型 | 译名 | 特性 |
---|---|---|
bit | 比特 | 由0或1表示、单位 |
byte | 比特 /字节 | 8bit表示,范围为-128~127 、单位或变量类型 |
char | 字符 | 是单独字符,不是数字,系统编码不同占用byte不同、变量类型 |
String | 字符串 | 若干字符的直接“串联”、变量类型 |
在 GB 2312 编码或 GBK 编码中,一个英文字母字符存储需要1个字节,一个汉子字符存储需要2个字节。
Unicode(Universal code?世界通用编码?)是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案。UTF-8、UTF-16、UTF-32都是将数字转换到程序数据的编码方案。
在UTF-8编码中,一个英文字母字符存储需要1个字节,一个汉字字符储存需要3到4个字节。
在UTF-16编码中,一个英文字母字符存储需要2个字节,一个汉字字符储存需要3到4个字节(Unicode扩展区的一些汉字存储需要4个字节)。
在UTF-32编码中,世界上任何字符的存储都需要4个字节。
java使用Unicode编码,所以一般而言java中一个char占用2个字节。然而编译环境(IDE)使用编码不同,char也是会不同的,例如在IDEA“UTF-8”文件编码情况下,“王”=“[-25, -114, -117]”;
一个汉字算一个字符吗?(来源网络)
不算!
第一种可能:在编程中,c语言、java等编程语言当中,因为汉字编码不属于ascii,而是由8位的汉字编码组成,所以在编程语言当中算的是2个字符
第二种可能:在vb、excel这类的为了方便使用者使用,都将汉字在查找的时候计算的是1个字符
来源
文件读写
FileReader和FileWriter作用都很有限,RandomAccessFile可以同时读和写,还能使用指针等点这里查看网友做的详细介绍
然而RandomAccessFile不能清空整个文件重写,所以要清空时还是要Writer;
一般文件以byte为单位读写。
字符比较是否相同要用str1.equals(str2),用str1==str2永远都是0。
字符数组之间的比较要用Arrays.equals(str[]1,str[]2)。