• Java流操作之转换流


    流的操作规律:

    1.明确流和目的。

      数据源(源头):就是需要读取,可以使用两个体系:InputStream、Reader

      数据汇(目的地):就是需要写入,可以使用两个体系:OutputStream.Writer

    2.操作的数据是否是纯文本数据?

      如果是(读取/写入的是字符):

                 数据源:Reader

                 数据汇:Writer

      如果不是(读取/写入的是字节):

                 数据源:InputStream         

                 数据汇:OutputStream

    3.确定了一个体系,明确操作的数据设备

      数据源对应的设备,如硬盘(File)、内存(数组)、键盘(System.in)、网络(Socket流)

      数据汇对应的设备,如硬盘(File)、内存(数组)、键盘(System.out)、网络(Socket流)

    4.需要在基本操作上附加其他功能?比如需要缓冲去提高数据的读写效率,则可以使用装饰类,比如(BufferedReader/BufferedWriter)

    凡是操作设备上的文本数据,涉及编码转换,必须使用转换流

    package IODemo;

    import java.io.BufferedReader;

     1 package IODemo;
     2 
     3 import java.io.BufferedReader;
     4 import java.io.BufferedWriter;
     5 import java.io.FileInputStream;
     6 import java.io.FileOutputStream;
     7 import java.io.IOException;
     8 import java.io.InputStreamReader;
     9 import java.io.OutputStreamWriter;
    10 
    11 public class InputStreamReaderDemo {
    12 
    13  /**
    14   * @param args
    15   * @throws IOException
    16   */
    17 
    18  public static void main(String[] args) throws IOException {
    19   /*
    20    * 完成文本文件的三个需求 (明确源和目的)
    21    * 1.输入控制台的内容输出到文本文件中 
    22    * 2.将文本文件的内容输出到控制台
    23    * 3.将一个文件的内容复制到另一个文件中
    24    */
    25   //第三问
    26   BufferedReader bufr = new BufferedReader(new InputStreamReader(
    27     new FileInputStream("Demo.txt")));
    28   BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(
    29     new FileOutputStream("Demo3.txt")));
    30   // 第二问
    31   /*
    32    * BufferedReader bufr = new BufferedReader(new InputStreamReader( new
    33    * FileInputStream("Demo2.txt"))); BufferedWriter bufw = new
    34    * BufferedWriter(new OutputStreamWriter( System.out));
    35    */
    36   // 第一问
    37   /*
    38    * BufferedReader bufr = new BufferedReader(new InputStreamReader(
    39    * System.in)); BufferedWriter bufw = new BufferedWriter(new
    40    * OutputStreamWriter( new FileOutputStream("Demo2.txt")));
    41    */
    42   // BufferedReader bufr=new BufferedReader(new
    43   // InputStreamReader(new FileInputStream("Demo.txt")));
    44 
    45   /*
    46    * InputStream in = System.in; int ch1=in.read();
    47    * System.out.println(ch1); int ch2=in.read(); System.out.println(ch2);
    48    */
    49   /*
    50    * InputStreamReader isr = new InputStreamReader(in); BufferedReader
    51    * bufr = new BufferedReader(isr);// 装饰类在基本功能上进行扩展
    52    */
    53   String line = null;
    54   while ((line = bufr.readLine()) != null) {
    55    if (line.equals("XXXX"))//你可以自定义读取文件时的结束标志 {
    56     break;
    57    }
    58    bufw.write(line);
    59    bufw.newLine();
    60    bufw.flush();
    61   }
    62  }
    63 
    64 }
  • 相关阅读:
    Jobs(一)前端页面
    MySQL 聚合函数与count()函数
    计算机概论 64bit和32bit的CPU的不同
    Maven如何发布项目到一个Tomcat中
    创建一个简单的Maven工程
    Maven安装与配置
    Maven整合Spring与Solr
    solr应用
    hashCode()与equals()区别
    Callable与Future
  • 原文地址:https://www.cnblogs.com/ysw-go/p/5287902.html
Copyright © 2020-2023  润新知