一、完成以下链接[https://www.cnblogs.com/zhrb/p/6834084.html]中的任务3、4、5。

3. 字符编码

主要讲解中文乱码问题,FileReader、InputStreamReader。

FileReader是InputStreamReader 类的子类,FileReader读取文件的过程中,FileReader继承了InputStreamReader,但并没有实现父类中带字符集參数的构造函数,所以FileReader仅仅能按系统默认的字符集来解码,然后在UTF-8 -> GBK-> UTF-8的过程中编码出现损失,造成结果不能还原最初的字符;InputStreamReader读的是字节数组byte [ ],而FileReader读的是字符数组char [ ];

4. 字节流、二进制文件:DataInputStream, DataOutputStream、ObjectInputStream

//DataInputStream(二进制输入流)
public class DataInputStreamDemo { // 二进制流(读操作) public static void main(String[] args) { FileInputStream fis = null; DataInputStream dis = null; try { fis = new FileInputStream("cba.bin"); dis = new DataInputStream(fis); System.out.println(dis.readUTF()); // 读取字符串 System.out.println(dis.readInt()); // 读取整型 System.out.println(dis.readBoolean()); // 读取bool类型 } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { dis.close(); fis.close(); } catch (IOException e) { e.printStackTrace();
}
}
}
}

//DataOutputStream二进制输出流
public class DataOutputStreamDemo {
public static void main(String[] args) {
FileOutputStream fos = null;
DataOutputStream dos = null;
try {
fos = new FileOutputStream("cba.bin");// 创建字节流 dos = new DataOutputStream(fos);// 创建二进制流 dos.writeUTF("abc");// 将utf-8编码字符串写入到流中
dos.writeInt(100);
dos.writeBoolean(true);
System.out.println("写入成功!"); } catch (FileNotFoundException e) { e.printStackTrace();
} catch (IOException e) { e.printStackTrace();
} finally { try {
dos.close();// 关闭流
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
} } }
//对象的输入流:  ObjectInputStream,把文件中的对象信息读取出来
public static void readObject(File f) throws IOException, ClassNotFoundException
{
FileInputStream inputStream = new FileInputStream(f);//创建文件字节输出流对象
ObjectInputStream objectInputStream = new ObjectInputStream(inputStream);
User user = (User)objectInputStream.readObject();
System.out.println(user);
}

5. 选做:RandomAccessFile

  • RandomAccessFile是用来访问那些保存数据记录的文件的,可以用seek( )方法来访问记录,并进行读写;

二、缓冲流(请自己设计实验进行测试)。尝试使用junit进行测试。

[http://www.maiziedu.com/wiki/java/buffered/]

三、尝试结合DAO模式与本章所学内容,为购物车系统设计数据存储相关的StudentDao接口及其相关实现类。

  • 还未实现。

最新文章

  1. python 将字典的键&值从byte类型转换为str类型
  2. RocketMQ学习记录
  3. 九度OJ 1024 畅通工程 -- 并查集、贪心算法(最小生成树)
  4. oninput,onpropertychange,onchange的使用方法和差别
  5. 初学git && 使用总结
  6. javascript点击焦点图
  7. 解决ajax跨域访问sessionid不一致问题
  8. Python总结(二)
  9. SpringBoot(8) SpringBoot过滤器Filter
  10. Latex(表格|图片(一丢丢))
  11. gpg使用说明
  12. TortoiseGit推送代码到Gerrit的过程
  13. mybatis 异常 There is no getter for property named 'bizId' in 'class java.lang.Long'
  14. java设计模式-Iterator
  15. kettle性能优化
  16. bzoj 3105
  17. webservice系统学习笔记7-使用handler实现过滤器/拦截器效果
  18. javascript 中mediator pattern(中介者模式)一个实例demo
  19. R语言绘图布局
  20. Postgres的TOAST技术

热门文章

  1. RabbitMQ消息中间件极速入门与实战
  2. SQLSERVER SQL性能优化
  3. jdbc学习笔记03
  4. ansible服务的部署与使用
  5. Chrome Google 快捷键
  6. 使用NPOI快速导出导入Excel
  7. css实现未知元素宽高垂直居中和水平居中的方法
  8. Node.js(二)----安装Cnpm
  9. scala成长之路(5)问题记录
  10. ELK 安装部署实战 (最新6.4.0版本)