IO流:字符流

字符编码表:

  能识别中文的码表:GNK,UTF-8;

  对我们开发而言常见的码表:GBK  UTF-8  ISO-8859-1

文字--->(数字) :编码。 “abc”.getBytes()  byte[]

(数字)--->文字  : 解码。 byte[] b={97,98,99}  new String(b,0,len)

字符输入流:Reader

   read():读取单个字符并返回

   read(char[]):将数据读取到数组中,并返回读取的个数。

FileReader类:

  FileReader(String fileName):在给定从中读取数据的文件名的情况下创建一个新FileReader

字符输出流:Writer

  

FileWriter类:

flush和close的区别:

flush():将流中的缓冲区缓冲的数据刷新到目的地中,刷新后,流还可以继续使用。

close():关闭资源,但在关闭前会将缓冲区中的数据先刷新到目的地,否则丢失数据,然后在关闭流。流不可以使用。如果写入数据多,一定要一边写一边刷新,最后一次可以不刷新,由close完成刷新并关闭。

下面是一个字符流复制文件的小案例:

import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class Demo01 {
 public static void main(String[] args) throws IOException {
  //明确目的地
  FileWriter fw=new FileWriter("D:\io\b\demo01.txt");
  //明确数据源
  FileReader fr=new FileReader("D:\io\demo01.txt");
  int len=0;
  while((len=fr.read())!=-1){
   fw.write(len);
   fw.flush();
  }
  fw.close();
  fr.close();
 }
}
原文地址:https://www.cnblogs.com/nbkls/p/12745369.html