-
java采用双字节编码,utf-16be查看全部
-
针对高赞笔记进行思路性补充: String s="慕课ABC"; byte[] bytes1=s.getBytes();//这是把字符串转换成字符数组,转换成的字节序列用的是项目默认的编码 for(byte b: bytes1) System.out.println(Integer.toHexString(b & 0xff)+" ");// & 0xff是为了把前面的24个0去掉只留下后八位//之所以只留八位是因为原始byte型数据就只有八位,去掉因为转换为int型而多余的24位 //toHexString这个函数是把字节(转换成了Int)以16进制的方式显示//totoHexString()是Integer的方法,其默认参数是int型,接收byte型就自动转为int,然后执行转十六进制的操作,转十六进制是为了方便观察其编码方式,即各自有多少字节,如果不转为16进制,二进制数位太多,不便观察 byte[] bytes1=s.getBytes("gbk");//也可以转换成指定的编码 gbk编码: 中文占用两个字节,英文占用一个字节 utf-8编码:中文占用三个字节,英文占用一个字节 java是双字节编码,是utf-16be编码 utf-16be编码:中文占用两个字节,英文占用两个字节 当你的字节序列是某种编码时,这个时候想把字节序列变成字符串,也需要用这种编码方式,否则会出现乱码 String str1=new String(bytes4);//这时会使用项目默认的编码来转换,可能出现乱码 要使用字节序列的编码来进行转换 String str2=new String(bytes4,"utf-16be"); 文本文件就是字节序列,可以是任意编码的字节序列 如果我们在中文机器上直接创建文本文件,那么该文件只认识ANSI编码(例如直接在电脑中创建文本文件)//此处的原理是本身中文机器可以识别所有编码,但是如果直接在中文机器上创建文件时,默认以ansi编码,因此读取时也自动以此种编码方式读,而你如果不是在中文机器上创建文件时,其会选择合适的编码方式来解读。特别注意一点是“联通”和“联”是特例,其默认编码不是ansi。查看全部
-
1111查看全部
-
Java.io.File查看全部
-
机器上的文本文件,如果是直接创建的,就只认识ansi, 如果是粘贴过来的,则都认识 gbk:中文占用2个字节,英文占用1个字节 utf-8:中文占用3个字节,英文占用1个字节 java是双字节编码:utf-16be:中文占用2个字节,英文占用2个字节 转换成16进制输出时要与上0xff,屏蔽前面24位,取后8位 Integer.toHexString(b&0xff) 指定编码格式:byte[] bytes=s.getBytes(“指定编码”); 字节序列在转换成字符串的时候要指定编码格式: String str=new String(bytes,“指定编码”);(指定的编码格式要与字节序列指定的编码格式相同)查看全部
-
JavaIO,输入流和输出流的基本方法查看全部
-
1.对象序列化,就是将Object转换成byte序列,反之叫对象的反序列化 2.序列化流(OjectOutputStream)是过滤流----writeObject 反序列化流(ObjectInputStream)----readObject 3.序列化借口(Serializable) 对象必须实现序列化接口,才能进行序列化,否则将出现异常 这个接口,没有任何方法,只是一个标准 对象实体类的序列化与反序列化 public static void main(String[] args) throws IOException, Exception { String file = "F:/IO流/序列化/test.txt"; // 1.对象的序列化 /*ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream( file)); Student stu = new Student("10011", "张三 ", 20); oos.writeObject(stu); oos.flush(); oos.close();*/ // 2.反序列化 ObjectInputStream ois = new ObjectInputStream(new FileInputStream(file)); Student stu2 = (Student) ois.readObject(); System.out.println(stu2); ois.close(); }查看全部
-
对象序列化:将Object转换成byte序列,反之叫对象的反序列化查看全部
-
机器上的文本文件,如果是直接创建的,就只认识ansi, 如果是粘贴过来的,则都认识 gbk:中文占用2个字节,英文占用1个字节 utf-8:中文占用3个字节,英文占用1个字节 java是双字节编码:utf-16be:中文占用2个字节,英文占用2个字节 转换成16进制输出时要与上0xff,屏蔽前面24位,取后8位 Integer.toHexString(b&0xff) 指定编码格式:byte[] bytes=s.getBytes(“指定编码”); 字节序列在转换成字符串的时候要指定编码格式: String str=new String(bytes,“指定编码”);(指定的编码格式要与字节序列指定的编码格式相同)查看全部
-
可以直接操纵管理硬盘的文件,以DOS的形式运行。查看全部
-
FileWriter:文件输出流,FileWriter()里除了文件路径,若再追加参数true,则不会删掉该文件,而是在该文件里将内容再追加一遍查看全部
-
FileReader() 文件读取,可放文件File,也可放文件路径查看全部
-
InputStreamReader() 默认解析的是gbk编码查看全部
-
字符流操作的大部分是文本文件查看全部
-
字符流的输入流:Reader;输出流:Writer查看全部
举报
0/150
提交
取消