A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘闯2 中级黑马   /  2017-12-14 17:07  /  1682 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

24.从键盘录入输入流:System.in
//创建输入流:InputStream is =System.in;(字节流)
//把字节数组转换成字符串:new String(bys,0,len);
//转换流:把字节输入流转换成字符输入流InputStreamReader
InputStream is=System.in;
Reader r=new InputStreamReader(is);
25.打印流:只有输出,没有输入。
也是包装流,不具备写出功能。可以把字节输出流转换成字符输出流(通过转换流)
三大特点;
可以自动换行,println()。自动刷新
                          不能输出字节,但是可以输出其他任意类型
                        通过某些配置,可以实现自动刷新(只有在调用 println、printf 或 format才有用)
也是包装流,不具备写出功能
*                         可以把字节输出流转换成字符输出流
PritStream
PritWriter
//创建打印流对象:PrintWriter pw=new PrintWriter(“a.txt”);
Pw.Println(“4564”);//实现自动换行,与系统无关
//启动自动刷新;PrintWriter pw=new PrintWriter(new FileWriter(“a.txt”),true);
只有println等三个方法才能实现自动刷新
注意:创建FileWriter对象时boolean参数是是否追加,
而创建打印流对象的boolean类型参数是是否自动刷新
26.对象操作流;可以用于读写任意类型的对象;
对象输入流:ObjectInputStream:称为 反序列化流
                writeObject
                ObjectOutputStream(OutputStream out)
对象输出流;ObjectOutputStream:称为 序列化流
                readObject
                ObjectInputStream(InputStream in)
注意:        使用对象输出流写出对象,只能使用对象输入流来读取对象
                        只能将支持 java.io.Serializable 接口的对象写入流中
Serializable:        序列号,是一个标识接口,只起标识作用,没有方法
                当一个类的对象需要IO流进行读写的时候,这个类必须实现该接口
//创建对象输入流的对象
                ObjectInputStream ois = new ObjectInputStream(new FileInputStream("a.txt"));
//创建对象输出流的对象
                //FileOutputStream fos = new FileOutputStream("a.txt");
                //ObjectOutputStream oos = new ObjectOutputStream(fos);
                ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("a.txt"));
27.解决对象输入流读取对象出现异常的问题:把学生对象装入到集合中,然后对这个集合进行输出和输入
//创建对象输出流的对象
        ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("b.txt"));
oos.writeObject(list);
28.现在有几个问题:即使什么时候用的是是字节流什么时候是字符流
OutputStreamWriter是字符流通向字节流的桥梁,传入字符直接输出字节(自动转换)
InputStreamReader 是字节流通向字符流的桥梁,
29.Properties表示一个持久的属性集。属性列表的键和值都是字符串
Properties prop=new Properties();
Properties和IO流结合的功能:
                        void load(Reader reader) 只能接收打印流
                        void list(PrintWriter out)
                        void store(Writer writer, String comments)可以接受任意类型的输出流
30..编码表:把计算机语言转换成我们能看懂的字符
ASCII
GB2312        ---        GBK完全包含ASCII,并且有中文
Unicode        所有的字符都占2个字节,包含了大部分国家的码表
UTF-8        长度可变的码表,更加灵活
ANSI:本地编码表(不是具体的编码表,根据系统的环境语言而变化)        gbk
java中字符串的编码:默认使用的ANSI(gbk)
乱码:编码保持前后一致即可解决

4 个回复

倒序浏览
Very good!
回复 使用道具 举报
回复 使用道具 举报


回复 使用道具 举报
不错不错    杠杠的   加油
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马