• java 21


    打印流
      字节流打印流 PrintStream
      字符打印流 PrintWriter

    打印流的特点:
      A:只有写数据的,没有读取数据。只能操作目的地,不能操作数据源。(只能写入数据到文件中,而不能从文件中提取数据)
      B:可以操作任意类型的数据。
      C:如果启动了自动刷新,能够自动刷新。
      D:该流是可以直接操作文本文件的。
     

    哪些流对象是可以直接操作文本文件的呢?
         FileInputStream
         FileOutputStream
         FileReader
         FileWriter
         PrintStream
         PrintWriter
    看API,查流对象的构造方法,如果同时有File类型和String类型的参数,一般来说就是可以直接操作文件的。

    流如果按操作分:
         基本流:就是能够直接读写文件的
         高级流:在基本流基础上提供了一些其他的功能

    作为Writer的子类使用:

     1     public static void main(String[] args) throws IOException {
     2         // 作为Writer的子类使用
     3         PrintWriter pw = new PrintWriter("pw.txt");
     4 
     5         pw.write("hello");
     6         pw.write("world");
     7         pw.write("java");
     8         
     9         pw.close();
    10     }

    打印流的特点:

      1:可以操作任意类型的数据。
         print()
         println()
       2:启动自动刷新
         PrintWriter pw = new PrintWriter(new FileWriter("pw2.txt"), true);
         还是应该调用println()的方法才可以
         这个时候不仅仅自动刷新了,还实现了数据的换行。

      这里的println()
           其实等价于于:
          bw.write();
          bw.newLine();
          bw.flush();

    PrintWriter实现自动刷新和自动换行:

     1 public static void main(String[] args) throws IOException {
     2         // 创建打印流对象
     3         PrintWriter pw = new PrintWriter(new FileWriter("pw2.txt"), true);
     4 
     5         pw.println("hello");
     6         pw.println(true);
     7         pw.println(100);
     8 
     9         pw.close();
    10     }

    之前单纯用字符流来复制文本:

     1         // 封装数据源
     2          BufferedReader br = new BufferedReader(new FileReader(
     3         "DataStreamDemo.java"));
     4         //  封装目的地
     5          BufferedWriter bw = new BufferedWriter(new FileWriter("Copy.java"));
     6         
     7          String line = null;
     8          while ((line = br.readLine()) != null) {
     9          bw.write(line);
    10          bw.newLine();
    11          bw.flush();
    12         }
    13         
    14          bw.close();
    15          br.close();

    使用打印流来改进之前的复制文本例子

     1     public static void main(String[] args) throws IOException {
     2             //封装数据源,文本文件,用字符流
     3             BufferedReader br = new BufferedReader(new FileReader("DataStreamDemo.java"));
     4             //封装目的地
     5             PrintWriter pw = new PrintWriter(new FileWriter("Copy.java"),true);
     6             //读取数据,并写入数据
     7             String line = null;
     8             while((line = br.readLine()) != null){
     9                 pw.println(line); //这里一句相当于以前3句
    10             }
    11             //释放资源
    12             br.close();
    13             pw.close();
    14 
    15     }
    何事都只需坚持.. 难? 维熟尔。 LZL的自学历程...只需坚持
  • 相关阅读:
    android监听屏幕打开关闭广播无响应的情况
    2020/4/9
    2020/4/8
    2020/4/7
    conda镜像
    2020/4/3
    2020/4/2
    2020/4/1
    EYELIKE源代码解读
    bzoj3162 独钓寒江雪
  • 原文地址:https://www.cnblogs.com/LZL-student/p/5928889.html
Copyright © 2020-2023  润新知