Day17_100_IO_FileWriter文件字符输入流

FileWriter文件字符输入流

  • 继承结构
    Java.lang.Object
    - java.io.Writer; 抽象类
    java.io.OutputStreamWriter; <转换流: 将字节输出流转换为字符输出流>
    java.io.FileWriter; <文件字符输出流>

  • 文件字节输入、输出流的read和write方法使用字节数组读写数组读写数据,即以字节为单位处理数据,字节流不能够很好操作Unicode字符,比如一个汉字在文件中占2个字节,试过使用字节流,读取不当会出现乱码的现象,
    字符输入流和输出流的read和write方法使用字符数组读写即以字符为单位来处理数据。

  • 代码

  import java.io.FileWriter;
  import java.io.IOException;

  public class FileWriterTest01 {
      public static void main(String[] args) {

          //创建文件输出路径
          String fileName="D:\\TestFile\\JavaTestFile\\FileWriter.txt";

          //创建输出内容
          String content="2021年4月12日10点55分";

          //创建文件字符输出流对象
          FileWriter fw=null;

          try {
              //创建文件字符输出流
              fw= new FileWriter(fileName,true);

              //开始写 方式一 write(String str)
              fw.write(content);  //2021年4月12日10点55分

              //开始写入 方式二: write(char[] chars)
              char chars[]=new char[512];  //1kb

              for (int i = 0; i <content.length() ; i++) {
                  chars[i]=content.charAt(i);
               }

               fw.write(chars);

               // 开始写入 方式三 write(String str, int offset, int length)
                 fw.write(content,0,10);

               // 方式四
                char [] ch={'我','是','中','国','人','!'}  ;
                fw.write(ch,0,5);

                 //刷新
               fw.flush();
          } catch (IOException e) {
              e.printStackTrace();
          }finally {
              if(fw!=null){
                  try {
                      fw.close();
                  } catch (IOException e) {
                      e.printStackTrace();
                  }
              }
          }
      }
  }
posted @ 2021-04-12 12:55  失昼  阅读(55)  评论(0)    收藏  举报