黑马程序员技术交流社区

标题: java基础 IO流总结 [打印本页]

作者: zhp19821223    时间: 2015-10-13 23:56
标题: java基础 IO流总结
1:字符流(掌握)
Reader
  |--InputStreamReader
   |--FileReader
  |--BufferedReader
Writer
  |--OutputStreamWriter
   |--FileWriter
  |--BufferedWriter
针对文本文件这样的数据操作。
基本的读取和基本的写入,单独使用也是要求掌握的。

掌握:(5种方式)
  把c:\\a.txt复制到d:\\b.txt中。
(1)FileWriter写入数据
  操作步骤:
   A:创建字符输出流对象
   B:调用对象的write()方法
   C:释放资源
  代码体现:
   FileWriter fw = new FileWriter("fw.txt");
   fw.write("hello,IO");
   //fw.flush();
   fw.close();
  几个小问题?
   A:创建字符输出流对象做了那几件事情?
   B:为什么要flush()?
   C:为什么要close()?
   D:flush()和close()的区别?
   E:怎么实现换行?
   F:怎么实现追加写入?
   G:文件不存在,会创建一个。文件如果存在,到底是重新创建,还是把内容给清空?
(2)FileReader读取数据
  操作步骤:
   A:创建字符输入流对象
   B:调用对象的read()方法
   C:释放资源
  代码体现:
   FileReader fr = new FileReader("fw.txt");
   //方式1
   //一次读取一个字符
   int ch = 0;
   while((ch=fr.read())!=-1) {
    System.out.print((char)ch);
   }

   //方式2
   //一次读取一个字符数组
   char[] chs = new char[1024];
   int len = 0;
   while((len=fr.read(chs))!=-1) {
    System.out.print(String.valueOf(chs,0,len));
   }
   fr.close();
(3)复制文本文件
  数据源:
   看用那种类型的流,读取数据。
  目的地:
   看用那种类型的流,写出数据。
  案例:
   把当前项目路径下的Demo.txt复制到d盘目录下的Copy.txt中。
  代码体现:
   方式1:
    FileReader fr = new FileReader("Demo.txt");
    FileWriter fw = new FileWriter("d:\\Copy.txt");
    int ch = 0;
    while((ch=fr.read())!=-1) {
     fw.write(ch);
    }
    fw.close();
    fr.close();

   方式2:
    FileReader fr = new FileReader("Demo.txt");
    FileWriter fw = new FileWriter("d:\\Copy.txt");
    char[] chs = new char[1024];
    int len = 0;
    while((len=fr.read(chs))!=-1) {
     fw.write(chs,0,len);
    }
    fw.close();
    fr.close();

2:转换流(理解)
InputStreamReader isr = new InputStreamReader(System.in);
InputStreamReader isr = new InputStreamReader(new FileInputStream(...));
OutputStreamWriter osw = new OutputStreamWriter(System.out);
OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(...));
3:字符编码(理解)
(1)编码表
  字符及其对应的数值组成的一张表。
(2)常见的码表:
  ASCII,ISO-8859-1,GB2312,GBK,GB18030,BIG5,UTF-8
(3)编码应用:
  A:IO流中(转换流)
  B:字符串
  最好编码一致。


作者: fwqk123    时间: 2015-10-14 17:21
LZ自己总结的吗 我也要总结一发




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2