美文网首页
字符与字节

字符与字节

作者: 李霖神谷 | 来源:发表于2017-02-17 21:21 被阅读17次

    数据分成2大类,一类字节数据,一类是字符数据。但是任何数据在底层都是以字节形式保存的。字节数据文件只能使用字节流来操作。字符数据文件可以使用字符流读取,也可以使用字节流读取。
    字节数据文件:图片,音频,视频,压缩文件等
    字符数据文件:以字节的形式表示的字符内容的文件,都可以称为字符文件。
    我们生活中qq,微信使用的都是字符类型的数据来交流,而中文都是两个字节组成一个汉字,当你将字符转换成计算机识别的字节类型的数据时,老美的英文字母,一个字母代表一个字节,可以根据acsii码表翻译成对应的数据。而翻译中文时就会造成乱码。
    能够识别中文的码表 utf-8 unicode GBK GB2312。
    字符输入流演示:

    import java.io.FileReader;
    import java.io.IOException;
    
    public class IoDemo {
        public static void main(String[] args) throws IOException {
            FileReader f = new FileReader("e:/lishuai.txt");
            int ch;
            while ((ch = f.read()) != -1) {
                System.out.print((char)ch);
            }
            f.close();
        }
    }
    

    想要读取文件中的字符数据就要使用字符输入流对象FileReader读取数据。当使用字符流读取数据的时候,其实在字符的底层使用的是字节流在读取数据,只不过在读取的时候,它会把读取的数据返回到Read中的字节流缓冲区 这后把这些字节数据去查询码表中对应的那个字符,然后把这个字符反给调用read的程序。
    字符流 = 字节流 + 编码表
    字符输出流演示:

    
    import java.io.FileWriter;
    import java.io.IOException;
    
    public class IoDemo {
        public static void main(String[] args) throws IOException {
            FileWriter f = new FileWriter("e:/lishuai.txt");
            f.write(2015);
            f.write("li李帅");
            f.flush();
            f.close();
        }
    }
    

    这里要注意使用write方法写的时候,写入到缓冲区内,要使用flush方法才能将缓冲区内的数据存储到硬盘中。

    相关文章

      网友评论

          本文标题:字符与字节

          本文链接:https://www.haomeiwen.com/subject/zlglwttx.html