字符与字节

数据分成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方法才能将缓冲区内的数据存储到硬盘中。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • tags:io categories:总结 date: 2017-03-28 22:49:50 不仅仅在JAVA领...
    行径行阅读 6,544评论 0 3
  • 在经过一次没有准备的面试后,发现自己虽然写了两年的android代码,基础知识却忘的差不多了。这是程序员的大忌,没...
    猿来如痴阅读 7,913评论 3 10
  • 1. 流的概念 流(stream)的概念源于UNIX中管道(pipe)的概念。在UNIX中,管道是一条不间断的字节...
    JackChen1024阅读 4,351评论 0 10
  • 本文对 Java 中的 IO 流的概念和操作进行了梳理总结,并给出了对中文乱码问题的解决方法。 1. 什么是流 J...
    Skye_kh阅读 4,132评论 0 2
  • 薛之谦最后丢下话筒时那句话感动了我:“如果因为我的原因,让比赛结果发生变化,那么我愿意辞去星推官这个责任!” 才华...
    我叫十二阅读 1,638评论 0 1