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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. 只是简写代码 没有抛出异常,也没有try()catch() 理解方法就好
复制代码

根据视频的联系做的  有错的地方请指出,互相交流下


4 个回复

倒序浏览
代码呢?
回复 使用道具 举报
  1. 1.
  2. 源:键盘录入
  3. 目的:控制台
  4. 2.需求:想把键盘录入的数据存储到一个文件中
  5. 源:键盘录入
  6. 目的:文件
  7. 3.需求:想要将一个文件的数据打印在控制台上
  8. 源:文件
  9. 目的:控制台
  10. 流操作的基本规律:
  11. 流对象有很多,不知道该用哪一个
  12. 三个明确:
  13. 1.明确源和目的
  14.         源:输入流。InputStream  Reader
  15.         目的:输出流 OutputStream Writer
  16. 2.明确操作的数据是否是纯文本
  17.         是纯文本:字符流
  18.         不是纯文本:字节流
  19. 3.当体系明确后,在明确要使用哪个具体的对象
  20.         通过设备来进行区分
  21.         源设备:内存,硬盘,键盘
  22.         目的设备:内存,硬盘,控制台
  23. 练习:
  24. 一。
  25. 把一个文本文件中数据存储到另一个本文文件中。复制文件
  26.         源:InputStream  Reader
  27.         是否是纯文本?是, Reader
  28.         目的:OutputStream Writer
  29.         是否为纯文本?是, Writer
  30.         Reader中操作文本文件的为FileReader,FileWriter
  31.         是否需要提高效率?
  32.         是  加入Reader体系中BufferedReader
  33.         BufferedReader bufr = new BufferedReader(new FileReader("要读文件"));
  34.         BufferedWriter bufw = new BufferedWriter(new FileWriter("要写入文件"));
  35.                 String line = null;
  36.                 while((line= bufr.readLine())!=null){
  37.                         bufw.write(line);
  38.                         bufw.newLine();
  39.                         bufw.flush();                       
  40.                 }
  41.                 bufw.close();
  42.                 bufr.close();
  43. 二。
  44. 把一个图片文件中数据存储到另一个文件中
  45.         源:InputStream Reader
  46.         会否为纯文本? 不是。 用InputStream
  47.         目的:是否为纯文本?不是,用OutputStream
  48.         是否要提高效率? 是 加入体系中 BufferedInputStream, BufferedOutputStream
  49.         BufferedInputStream bufis = new BufferedInputStream(new InputStream("要读取图片"));
  50.         BufferedOutputStream bufos = new BufferedOutputStream(new OutputStream("要写入的文件"));
  51.           int by = 0;
  52.           while((by=bufis.read())!=-1){
  53.                 bufos.write(by);
  54.           }
  55.           bufos.close();
  56.           bufis.close();

  57. 三。
  58. 将键盘录入的数据保存到一个文件中
  59.         源: InputStream Reader
  60.         是否为纯文本? 是, Reader
  61.         目的:是否为纯文本? 是,Writer
  62.         设备:键盘 对应System.in
  63.         把System.in转换成字符流:InputStreamReader
  64.         是否要提高效率? 是 ,加入体系中BufferedReader, BuffereddWriter
  65.          BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  66.          BufferedWriter bw = new BufferedWriter(new FileWriter());
  67.          String line = null;
  68.                  while((line=br.readLine())!=null){
  69.                          if("over".equals(line))
  70.                                         break;
  71.                         bw.write(line);
  72.                         bw.newLine();
  73.                         bw.flush();
  74.                  }
  75.                  bw.close();
  76.                  br.close();
  77. 扩展: 想要把录入的数据按指定编码表(utf-8),将数据存到文件中
  78.                 源:是否为纯文本? 是,Reader
  79.                 目的:是否为纯文本? 是,Writer
  80.                 设备:文本:FileReader ,FileWriter
  81.                 但FileWriter是默认编码表GBK
  82.                 用转换流 OutputStreamWriter(new FileOutputStream("要写入的文本","utf-8"))
  83.                 是否要提高效率? 是
  84.                 BufferedReader bufr = new BufferedReader(new FileReader("要读取的文本"));
  85.                 BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("写入文本","utf-8")))
  86.                         while((line=bufr.readLine())!=null){
  87.                         bufw.write(line);
  88.                         bufw.newLine();
  89.                         bufw.flush();
  90.                 }
  91.                         bufw.close();
  92.                         bufr.close();
  93. 四。
  94. 将一个文本数据打印在控制台上
  95.         源:是否为纯文本? 是, Reader
  96.         目的 是否为纯文件? 是, Wrtier
  97.         设备:控制台 System.out
  98.         把System.out 转换成OutputStream
  99.         是否要提高效率? 是 加入体系中 BufferedReader, BufferedWriter
  100.         BufferedReader bufr = new BufferedReader(new FileReader("要读取文件"));
  101.         BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(System.out));
  102.                 String line = null;
  103.                 while((line=bufr.readLine())!=null){
  104.                         bufw.write(line);
  105.                         bufw.newLine();
  106.                         bufw.flush();
  107.                 }
  108.                         bufw.close();
  109.                         bufr.close();
复制代码
回复 使用道具 举报
思路清晰,水到渠成...
回复 使用道具 举报
那为什么不直接去用伪码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马