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个)
   字符流的读写方式
        基本和字节流一样,但它读写的是字符
       

你可能感兴趣的:(Java)