本帖最后由 小石姐姐 于 2018-4-26 14:29 编辑
IO-标准流-转换流-打印流-对象流-Properties-...
IO流:类字段:静态成员; 标准流: public static final InputStream in;字节输入流(byte),获取键盘输入 InputStream in=System.in; public static final PrintStream out;字节输出流,将数据写到命令行; OutputStream out=System.out; 转换流: 打印流: 对象流: 读取文件到控制台:String转byte两种方式: byte[] getBytes();字符串转数组 BufferedWriter BufferedReader
键盘录入(System.in),写到文件:控制台是字节输入流,最终代码底层读写都是字符;(通过InputoutStreamReader) byete[]转换成String 打印流: ---> 输出流1.不能输出字节 2.自动换行 3.自动刷新 4.也是包装流, 类似于BufferedWriter, 自身没有写出功能 5.(PrintWriter)可以把字节转换成字符输出流 转换流: 转换流也是包装类, 需要传入实际的输入输出流对象 PrintStream:字节 PrintWriter:字符 对象操作流(都属于字节流)定义学生类,重写toString()方法,将学生类实现Serializable接口, Serializable序列化: 将对象的信息转换为可存储的信息的过程 <把学生对象写到文件>//创建对象输出流 ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("a.txt")); //创建学生对象 //创建集合对象 //把对象添加到集合 //写出集合对象 oos.writeObject(list) //释放资源 <读取学生对象并打印>//创建对象输入流 ObjectInputStream ois = new ObjectInputStream(new FileInputStream("a.txt")); //读取集合对象 Object object = ois.readObject(); //强转为ArrayList ArrayList<Student> list = (ArrayList<Student>) object; //遍历集合打印学生对象 //释放资源 集合:Properties与IO流结合读取配置文件Properties==Map;遍历有两种方式,keySet();entrySet(); Properties:属性列表中每个键值(都是Object类)都是字符串; 1.创建属性列表 2.添加映射关系 3.遍历属性列表 乱码: 查找编码表找不到对应的字符, 或找错了字符, 显示为错误字符.
|