重踏学习Java路上_Day21(字符流,io小结,案例)

1:字符流(掌握)
    (1)字节流操作中文数据不是特别的方便,所以就出现了转换流。
       转换流的作用就是把字节流转换字符流来使用。
    (2)转换流其实是一个字符流
        字符流 = 字节流 + 编码表
    (3)编码表
        A:就是由字符和对应的数值组成的一张表
        B:常见的编码表
            ASCII
            ISO-8859-1
            GB2312
            GBK
            GB18030
            UTF-8
        C:字符串中的编码问题
            编码
                String -- byte[]
            解码
                byte[] -- String
    (4)IO流中的编码问题
        A:OutputStreamWriter
            OutputStreamWriter(OutputStream os):默认编码,GBK
            OutputStreamWriter(OutputStream os,String charsetName):指定编码。
        B:InputStreamReader
            InputStreamReader(InputStream is):默认编码,GBK
            InputStreamReader(InputStream is,String charsetName):指定编码
        C:编码问题其实很简单
            编码只要一致即可
    (5)字符流
        Reader
            |--InputStreamReader
                |--FileReader
            |--BufferedReader
        Writer
            |--OutputStreamWriter
                |--FileWriter
            |--BufferedWriter
    (6)复制文本文件(5种方式)

2:IO流小结(掌握)
    IO流
        |--字节流
            |--字节输入流
                InputStream
                    int read():一次读取一个字节
                    int read(byte[] bys):一次读取一个字节数组
                
                    |--FileInputStream
                    |--BufferedInputStream
            |--字节输出流
                OutputStream
                    void write(int by):一次写一个字节
                    void write(byte[] bys,int index,int len):一次写一个字节数组的一部分
                    
                    |--FileOutputStream
                    |--BufferedOutputStream
        |--字符流
            |--字符输入流
                Reader
                    int read():一次读取一个字符
                    int read(char[] chs):一次读取一个字符数组
                    
                    |--InputStreamReader
                        |--FileReader
                    |--BufferedReader
                        String readLine():一次读取一个字符串
            |--字符输出流
                Writer
                    void write(int ch):一次写一个字符
                    void write(char[] chs,int index,int len):一次写一个字符数组的一部分
                    
                    |--OutputStreamWriter
                        |--FileWriter
                    |--BufferedWriter
                        void newLine():写一个换行符
                        
                        void write(String line):一次写一个字符串

3:案例(理解 练习一遍):代码在另外的一个随笔中
    A:复制文本文件 5种方式(掌握)
    B:复制图片(二进制流数据) 4种方式(掌握)
    C:把集合中的数据存储到文本文件
    D:把文本文件中的数据读取到集合并遍历集合
    E:复制单级文件夹
    F:复制单级文件夹中指定的文件并修改名称
        回顾一下批量修改名称
    G:复制多级文件夹
    H:键盘录入学生信息按照总分从高到低存储到文本文件
    I:把某个文件中的字符串排序后输出到另一个文本文件中
    J:用Reader模拟BufferedReader的特有功能
    K:模拟LineNumberReader的特有功能

时间: 2024-10-25 10:30:04

重踏学习Java路上_Day21(字符流,io小结,案例)的相关文章

重踏学习Java路上_Day20(递归,IO流)

1:递归(理解)     (1)方法定义中调用方法本身的现象        举例:老和尚给小和尚讲故事,我们学编程    (2)递归的注意事项:        A:要有出口,否则就是死递归        B:次数不能过多,否则内存溢出        C:构造方法不能递归使用    (3)递归的案例:        A:递归求阶乘        B:兔子问题        C:递归输出指定目录下所有指定后缀名的文件绝对路径        D:递归删除带内容的目录(小心使用) 2:IO流(掌握)  

重踏学习Java路上_Day15(对象数组,集合类,列表)

1:对象数组(掌握)    (1)数组既可以存储基本数据类型,也可以存储引用类型.它存储引用类型的时候的数组就叫对象数组.    (2)案例:        用数组存储5个学生对象,并遍历数组. public class Student {    // 成员变量    private String name;    private int age; // 构造方法    public Student() {        super();    } public Student(String n

重踏学习Java路上_Day19(异常,File)

1:异常(理解) 异常的图解:     (1)异常就是Java程序在运行过程中出现的错误.    (2)异常的体系        Throwable            |--Error    严重问题,我们不处理.这种问题一般都是很严重的,比如说内存溢出.            |--Exception                |--RuntimeException  运行期发生问题:    这种问题我们也不处理,因为是你的问题,而且这个问题出现肯定是我们的代码不够严谨,需要修正代码的

重踏学习Java路上_Day13(StringBuffer,Array与数组,Integer,Character)

1:StringBuffer(掌握)    (1)用字符串做拼接,比较耗时并且也耗内存,而这种拼接操作又是比较常见的,为了解决这个问题,Java就提供了       一个字符串缓冲区类.StringBuffer供我们使用.    (2)StringBuffer的构造方法        A:StringBuffer()        B:StringBuffer(int size)        C:StringBuffer(String str)    (3)StringBuffer的常见功能(

重踏学习Java路上_Day18(Map,Collections)

1:Map(掌握) Map接口概述 将键映射到值的对象 一个映射不能包含重复的键 每个键最多只能映射到一个值 Map接口和Collection接口的不同 Map是双列的,Collection是单列的 Map的键唯一,Collection的子体系Set是唯一的 Map集合的数据结构值针对键有效,跟值无关   Collection集合的数据结构是针对元素有效    (3)Map接口功能概述(自己补齐)        A:添加功能        B:删除功能        C:判断功能        

重踏学习Java路上_Day12(Scanner,String)

1:Scanner的使用(了解)    (1)在JDK5以后出现的用于键盘录入数据的类.    (2)构造方法:        A:讲解了System.in这个东西.            它其实是标准的输入流,对应于键盘录入,in是System这个类中的最终静态变量:public static final InputStream;  in  “标准”输入流.此流已打开并准备提供输入数据.通常,此流对应于键盘输入或者由主机环境或用户指定的另一个输入源.        B:构造方法        

重踏学习Java路上_Day27(反射,模式设计,jdk新特性)

1:反射(理解) (1)类的加载及类加载器 (2)反射: 通过字节码文件对象,去使用成员变量,构造方法,成员方法 (3)反射的使用 A:通过反射获取构造方法并使用 B:通过反射获取成员变量并使用 C:通过反射获取成员方法并使用 (4)反射案例 A:通过反射运行配置文件的内容 B:通过反射越过泛型检查 C:通过反射给任意的一个对象的任意的属性赋值为指定的值 (5)动态代理 2:设计模式 (1)装饰设计模式 BufferedReader br = new BufferedReader(new Inp

重踏学习Java路上_Day26(网络编程)

1:网络编程(理解)    (1)网络编程:用Java语言实现计算机间数据的信息传递和资源共享    (2)网络编程模型    (3)网络编程的三要素        A:IP地址            a:点分十进制            b:IP地址的组成            c:IP地址的分类            d:dos命令            e:InetAddress        B:端口            是应用程序的标识.范围:0-65535.其中0-1024不建议使

重踏学习Java路上_Day14(正则表达式,Math,Random,System,BigInteger,BigDecimal,Date,Calendar)

1:正则表达式(理解)    (1)就是符合一定规则的字符串    (2)常见规则        A:字符            x 字符 x.举例:'a'表示字符a            \\ 反斜线字符.            \n 新行(换行)符 ('\u000A')             \r 回车符 ('\u000D')                    B:字符类            [abc] a.b 或 c(简单类)             [^abc] 任何字符,除了