黑马程序员技术交流社区

标题: java字符流和字节流 [打印本页]

作者: GoldMan    时间: 2015-6-16 22:19
标题: java字符流和字节流
一:字符流
Reader和Writer(基类)
FileReader和FileWriter(定义字符输入、输出流)
BufferedReader和BufferedWriter(字符带缓冲输入、输出流)
LineNumberReader

二:字符流拷贝文件,4中方式
1.FileReader和FileWriter逐个字符拷贝
2.FileReader和FileWriter自定义数组拷贝
3.BufferedReader和BufferedWriter内置缓冲区逐个字符拷贝
4.BufferedReader和BufferedWriter逐行拷贝

  三:字节流
    OutputStream和InputStream(基类)
    FileOutputStream和FileInputStream(字节带缓冲输入、输出流)
    BufferedInputStream和BufferedOutputStream(字节缓冲输入、输出流)
   
  四:字符流拷贝文件,3种方式
1.FileInputStream和FileOutputStream, 逐个字节拷贝
2.FileInputStream和FileOutputStream, 自定义数组拷贝  
3.BufferedInputStream和BufferedOutputStream, 内置缓冲区拷贝

  五:什么时候使用字符流,字节流
当读取和写出一个字符串,使用字符流
当拷贝一个字符串,使用字节流
在我们读写任何数据的时候, 都能用字节流来做. 但是如果需要读写字符的时候, 使用字节流的话, 需要人工解码编码.
当我们读写字符的时候, 使用字符流更为方便, 它可以替我们自动解码编码.
当我们得到一个字节流, 需要向这个字节流中读写字符数据, 可以使用转换流将字节流转为字符流.

  六:转换流
  1.InputStreamReader, OutputStreamWriter
  2.字节流和字符流之间的桥梁, 可以从字节流中读取字符, 可以向字节流中写出字符
  
  七:什么时候用转换流和编码
  1.当我们得到一个字节输入流, 想从中读取字符的时候, 就可以使用InputStreamReader.
  2.当我们得到一个字节输出流, 想向其写出字符的时候, 就可以使用OutputStreamWriter.
  3.当我们读取非平台默认编码的字符数据时, 需要使用InputStreamReader.
  4.当我们写出非平台默认编码的字符数据时, 需要使用OutputStreamWriter.
  
  八.标准输入、输出流
1.标准输入流
  System.in是标准输入流, 默认可以从键盘输入读取字节数据.
  可以使用System.setIn(InputStream)修改数据源.
2.标准输出流
  System.out是标准输出流, 默认可以向屏幕输出数据
  可以使用System.setOut(PrintStream)修改数据目的地.
3.可以使用标准输入输出流拷贝文件

练习:1.加密
  九.字节流和字符流的三种读取方式
    字节流读取方式:
  //第一种,是一个字节、一个字节的的读,然后读到内存中, 然后一个一个的写出,速度最慢
  //第二种,是一个字节、一个字节 的读,读到数组中,读满后,一块写出,速度最快(每次读到程序中一个数组, 写出去一个数组)
  //第三种,是一个字节、一个字节的读,先读到内置的缓冲去中,然后一个一个的写出,速度很快(第一次读的时候读8192个, 每次read()和write()方法时从缓冲区中读到1个写再写到缓冲区中1个)
   字符流的读写方式
        基本和字节流一样,但它读写的是字符
      
作者: SHISY    时间: 2015-6-16 22:37
谢谢分享,好详细
作者: zhenxing133    时间: 2015-6-16 22:55
很喜欢总结性的东西,学习




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