• 选择用流的小规律(java)基本的io流


    选择流的规律
    
    1 首先我们要明确源和目的
     	源: InputStream Reader
      	目的::OutputStream Write
    2 我们要判断源和目的是不是纯文本
      源是纯文本 :Reader
    否则 :InputStream
      源不是纯文本  Writer
    否则:OutputStream
    3 明确具体设备
      源设备
      键盘 System.in
      网络 Socket
      内存 数组
      硬盘 File
      目的设备
      控制台 System.out
    硬盘 File
    内存数组
    网络 Socket
    
    4 是否需要额外功能
     需要高效(缓冲区):Buffered
    
    下面我们举出四个例子来说明
    
    一 复制一个文本文件
    
    源:文本 Reader
    目的 文本 Write
    源是硬盘
    目的也是硬盘
    FileReader fr = new FileReder(“a.txt”);
    FileWriter fw = new FileWriter(“Copy_a.txt”);
    
    是否需要高效(加入缓冲区)
    BufferedReader bfr = new BufferedReader (new FileReder(“a.txt”));
    BufferedWriter bfr = new BufferedWriter (new FileWriter(“Copy_a.txt”));
    
    二 读取键盘录入信息并且写到一个文件里面
    
    源 文本 Reader
    目的 文本 Writer
    源是在键盘
    目的是硬盘
    
    但是考虑到是文本我们九不需要在用字节读取
    直接
    //字节流  InputStream is = System.in;
    我们对其进行字符流转换
    InputStreamReader isr = new InputStreamReader(is);
    我们写到文本里面
    FileWriter fw = new FileWriter(“b.txt”);
    
    当我们需要高效的时候我们直接这样写
    BufferedReader bfr = new BufferedReader(new InputStreamReader (System.in));
    BufferedWriter bfr = new BufferedWriter (new FileWriter(“Copy_a.txt”));
    
    
    三  将一个文本文件里面的数据显示到控制台上
    
    源 文本 Reader
    目的 文本 Writer
    源是在硬盘
    目的实在控制台
    FileReader fr = new FileReader(“a.txt”);
    OutputStream os = System.out;
    
    因为读取的是文本文件
    所以我们为了更加的方便  我们将它转换成为字符流
    OutputStreamWriter osr = new OutputStreamWriter(new OutputStream(System.out));
    
    我们还要考虑是否需要高效
    BufferedReader bfr = new BufferedReader(new FileReader(“a.txt”));
    BufferedWriter
    Bfw = new BufferedWriter(newOutputStreamWriter(newOutputStream(System.out)));
    
    
    四 读入键盘内容然后写到控制台上
    
    源 文本 Reader
    目的 文本 Writer
    源是在键盘
    目的实在控制台
    InputStream is = System.in;
    OutputStream os = System.out
    
    因为键盘上输入的是文本(为了方便起见我们要转换成为字符流)(可以不转)
    InputStreamReader isr = new InputStreamReader(is);
    OutputStreamWriter osr = new OutputStreamWriter(osr);
    
    为了高效
    我们可以加上Buffered
    BufferedReader bfr = new BufferedReader(isr);
    BufferedWriter bfw = new BufferedWriter(osr);
    
    
    5将一个字符串文本用指定的编码表写到文件里面
    使用转换流的另外一个构造函数
    OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("menghao2.txt"),"UTF-8");
    osw.write("你好");
    osw.close();
    读的时候同理
    InputStreamReader isr = new InputStreamReader(new FileInputStream("menghao2.txt"),"Utf-8");
    		
    char a[] = new char[1024];
    int len = 0;
    while((len = isr.read(a)) != -1)
    {
               System.out.println(new String(a,0,len));
    }
    isr.close();
    

      

  • 相关阅读:
    asp.net core 使用 signalR(一)
    实现一个基于码云的Storage
    架构设计原则
    给 asp.net core 写个中间件来记录接口耗时
    [svc]ext4文件删除&访问原理
    [svc]为何linux ext4文件系统目录默认大小是4k?
    [svc]traceroute(udp+icmp)&tracert(icmp)原理
    [jk]服务器远控卡及kvm切换器
    [svc]find+xargs/sed&sed后向引用+awk多匹配符+过滤行绝招总结&&产生随机数
    [svc]linux正则及grep常用手法
  • 原文地址:https://www.cnblogs.com/WINDZLY/p/11802370.html
Copyright © 2020-2023  润新知