java基础学习_IO流03_字符流、IO流小结、案例_day21总结

java基础学习_IO流03_字符流、IO流小结、案例_day21总结

=============================================================================
=============================================================================
涉及到的知识点有:
    1:字符流(掌握)
        (1)转换流出现的原因及作用
        (2)转换流其实是一个字符流。
        (3)编码表
            A:编码表的概述
            B:常见的编码表
            C:字符串中的编码问题
        (4)IO流中的编码问题
        (5)字符转换流的5种写数据的方式
        (6)字符转换流的2种读数据的方式
        (7)面试题
        (8)字符转换流(= 字符流 = 转换流) ==> 字符转换简化流 ==> 字符流
        (9)字符缓冲区流
        (10)字符流
    2:IO流小结(掌握)
    3:案例(掌握)
        A:复制文本文件(用字符流) 5种方式(掌握)
        B:复制图片/视频/音频(用字节流) 4种方式(掌握)
        C:把ArrayList集合中的数据存储到文本文件
        D:从文本文件中读取数据(每一行为一个字符串数据)到ArrayList集合中,并遍历集合
        E:我有一个文本文件中存储了几个名字,请大家写一个程序实现随机获取一个人的名字。
        F:复制指定单级文件夹中的所有文件(里面只有文件,且文件各种各样)
        G:复制指定单级文件夹中的指定的文件,并修改文件后缀名(里面只有文件,且文件各种各样,但是本例题为了增加一点难度,使该单级文件夹中增加一个文件夹名为hello.java的文件夹)
        H:复制多级文件夹
        I:键盘录入5个学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分从高到低存入文本文件。
        J:已知在s.txt文件中有这样的一个字符串:“hcexfgijkamdnoqrzstuvwybpl”,请编写程序读取s.txt文件的数据内容,把读取到的数据排序后写入到ss.txt中。
        K:用Reader来模拟BufferedReader的特有功能readLine()
        L:用自定义类来模拟LineNumberReader的特有功能getLineNumber()和setLineNumber()
=============================================================================
=============================================================================
1:字符流(掌握)
    (1)转换流出现的原因及作用
        转换流出现的原因:字节流操作中文数据不是特别的方便,所以,java就提供了转换流。
        转换流的作用:就是把字节流转换字符流来使用。
    (2)转换流其实是一个字符流。
        字符流 = 字节流 + 编码表
---------------------------------------
    (3)编码表
        A:编码表的概述
            就是由现实世界的字符和对应的数值组成的一张表。
        B:常见的编码表
            ASCII:美国标准信息交换码。
                用一个字节的7位表示(最高位为符号位,其余位为数值位)。
            Unicode:国际标准码,融合了多种文字。
                所有文字都用两个字节来表示,Java语言使用的就是Unicode编码。
            ISO-8859-1:拉丁码表。欧洲码表。
                用一个字节的8位表示。
            GB2312:中国的中文编码表。(简体中文)
            GBK:中国的中文编码表升级,融合了更多的中文文字符号。(简体中文)
            GB18030:GBK的取代版本。(简体中文)
            BIG5:通用于台湾、香港地区的一个繁体字编码方案,俗称“大五码”。
            UTF-8:最多用三个字节来表示一个字符。
                UTF-8不同,它定义了一种“区间规则”,这种规则可以和ASCII编码保持最大程度的兼容:
                它将Unicode编码为 00000000-0000007F 的字符,用单个字节来表示;
                它将Unicode编码为 00000080-000007FF 的字符,用两个字节表示;
                它将Unicode编码为 00000800-0000FFFF 的字符,用三个字节表示。

        C:字符串中的编码问题
            String类的构造方法:
                public String(byte[] bytes, String charsetName) 通过指定的字符集解码字节数组
            String类的成员方法:
                public byte[] getBytes(String charsetName) 使用指定的字符集合把字符串编码为字节数组
            
            编码:把看得懂的变成看不懂的
                String --> byte[]
            解码:把看不懂的变成看得懂的
                byte[] --> String

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏IMWeb前端团队

走进Sass殿堂

最近在学习sass,从sass新手的角度做一个简单的总结,总结的不对的地方期望各位大大们能多多指点,本文是针对sass3.4做的一个总结~ 一、变量篇 1.1 ...

202100
来自专栏游戏杂谈

Objective-C 入门笔记

既然有头文件,所以很多人会拿它与C++进行类比,它最重要的三个特性是:Message、Category、Protocol,与C++类比,二者之间的不同:

13030
来自专栏小樱的经验随笔

Uva 11729 Commando War (简单贪心)

Uva 11729  Commando War (简单贪心) There is a war and it doesn't look very promising...

27560
来自专栏信数据得永生

JavaScript 编程精解 中文第三版 二、程序结构

429150
来自专栏企鹅号快讯

动态语言的灵活性是把双刃剑:以 Python 语言为例

新媒体管家 关键时刻,第一时间送达! 本文有些零碎,总题来说,包括两个问题:(1)可变对象(最常见的是list dict)被意外修改的问题,(2)对参数(par...

26670
来自专栏智能大石头

深度解析C++拷贝构造函数

自2003年开始,断断续续用了12年C++,直到这两年做物联网嵌入式开发,感觉对C++的掌握仅有10%左右。 习惯了C#开发,C++倒显得难以下手!今天就一个函...

22490
来自专栏智能算法

Python学习(一)---- Python基础必备

https://blog.csdn.net/fgf00/article/details/52061971

56840
来自专栏企鹅号快讯

改善Python程序的一些建议

第一章:引论 建议1、理解Pythonic概念----详见Python中的《Python之禅》 建议2、编写Pythonic代码 (1)避免不规范代码,比如只用...

20470
来自专栏C语言及其他语言

C语言自定义函数如何返回数组(上)?

最近看到一些同学问题,有提到说:如何在一个函数中返回数组呢? 能否直接在自定义 函数中,写成char *类型返回值,直接返回呢?,代码如下: ? 直接返回str...

53440
来自专栏喵了个咪的博客空间

zephir-(12)php函数和异常处理

#zephir-php函数和异常处理# ? ##前言## 先在这里感谢各位zephir开源技术提供者 经过了一个多月的学习,zephir的文档译文和基础讲解也将...

36760

扫码关注云+社区

领取腾讯云代金券