-
/* * 文本文件就是字节序列 * 可以是在任意编码的字节序列 * 如果我们在中文机器上直接创建文本文件,那么该文本文件只认识ansi编码 * 联通,联这是一种巧合,他们正好符合了utf-8编码的规则。 */查看全部
-
package javaIo; public class EncodeDemo { public static void main(String[] args)throws Exception{ String s="慕课adc"; //转换成字节序列用的是项目默认的编码 byte[] by=s.getBytes(); for(byte b:by){ //把字节(转换成int)以16进制的方式显示 System.out.print(Integer.toHexString(b&0xff)+" "); } System.out.println(); byte[] by2=s.getBytes("gbk"); //gbk编码中文占用2个字节,英文占用1个字节 for(byte b:by2){ System.out.print(Integer.toHexString(b&0xff)+" "); } System.out.println(); byte[] by3=s.getBytes("utf-8"); //"utf-8"编码中文占用3个字节,英文占用1个字节 for(byte b:by3){ System.out.print(Integer.toHexString(b&0xff)+" "); } //java是双字节编码utf-16be System.out.println(); byte[] by4=s.getBytes("utf-16be"); //"utf-16be"编码中文占用2个字节,英文占用2个字节 for(byte b:by4){ System.out.print(Integer.toHexString(b&0xff)+" "); } /*当你的字节序列式某种编码时,这个时候想把字节序列变成 *字符串,也需要用这种编码方式,否则会出现乱码 */ String str1=new String(by4); System.out.println(str1); String str2=new String(by4,"utf-16be"); System.out.println(str2); } }查看全部
-
那三个文件,保存的时候都是用的ANSI编码,记事本默认编码,可以新建一个记事本直接另存为,看看他的编码格式就知道啦。只是打开的时候,由于联通二字的ASNI编码为:FF FE 6A 00 68 03 ,UTF-8编码为:FF FE 54 80 1A 90。 因为都是FF FE 开头的,记事本不能判断你保存时的编码标准,只能“猜测”你保存的时候的编码标准,因为联通二字的ANSI编码正好是以“FF FE”开头的,这样以ANSI编码(笔记本默认编码)保存以后再次打开,记事本首先检测到“FF FE”,就认为是UTF-8编码了。所以打开的时候,你再去另存为就变成了UTF-8.不知道这样说你明白点了没有。查看全部
-
PrintWriter的参数直接是file对象,没有BufferedWriter那么麻烦查看全部
-
gbk编码中中文占用2个字节,英文占用1个字节 utf-8编码中中文占用3个字节,英文占用1个字节查看全部
-
采取BufferedReader 来读取一个txt文件。 txt中的内容为: abc 123 (第二行为空行) 以下是运行程序和结果: BufferedReader br = new BufferedReader(new FileReader("1.txt")); String line = null; while((line = br.readLine())!=null){ System.out.println(line); } 控制台输出如下: abc 123 可见,读取空行不可能返回null,而是一个空字符串“”查看全部
-
2)认识文本和文本文件 Java的文本(char)是16位无符号整数, 是字符的Unicode编码(双字节编码) 文件是byte byte byte ...的数据序列 文本文件是文本(char)序列按某种编码方案(utf-8, utf-16be,gbk)序列化为byte的存储结果查看全部
-
位运算,去除前面的24个零(待解决) 增强形for循环for(byte b:bytes1){} java是双字节编码utf-16be,中文占用2个字节,英文占用2个字节查看全部
-
byte转变字节数 一次性读取与一次性输入, 读文件时,必须把指针移到头部查看全部
-
遍历文件的目录查看全部
-
文件异常过滤查看全部
-
字符流查看全部
-
反序列化流(ObjectInputStream)----readObject查看全部
-
对象序列化,就是讲Object转换成byte序列,反之叫对象的反序列化; 序列化流(ObectOutputStream),是过滤流;查看全部
-
文本文件是任意编码的字节序列查看全部
举报
0/150
提交
取消