zoukankan      html  css  js  c++  java
  • 毕向东_Java基础视频教程第19天_IO流(18~19)

    第19天-18-IO流(流操作规律 - 1)

     通过三个步骤来明确"流操作"的规律:

    1. 明确数据流的"源和目的"

      1. 源, 输入流: InputStream/Reader

      2. 目的, 输出流: OutputStream/Writer

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

      1. 是, 字符流

      2. 不是, 字节流

    3. 通过设备来区分要使用哪个具体的类

      1. 源设备: 内存/硬盘/键盘

      2. 目的设备: 内存/硬盘/控制台

    4. 附录

      1. 是否需要进行缓冲:

        BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));

      2. 是否需要进行 "字符 - 字节" 以及charset的转换:

        例如OutputStreamWriter(OutputStream out, String charsetName)

    第19天-19-IO流(流操作规律 - 2)

    package bxd;
    
    import java.io.*;
    
    public class TransStreamDemo2 {
    
        public static void main(String[] args) throws IOException {
            method_5();
    
        }
    
        // 将一个文本文件中的数据存储到另外一个文件中
        public static void method_1() throws IOException {
            BufferedReader bufr = new BufferedReader(new FileReader("s.txt"));
            BufferedWriter bufw = new BufferedWriter(new FileWriter("d.txt"));
    
            String line;
            while ((line = bufr.readLine()) != null) {
                bufw.write(line);
                bufw.newLine();
                bufw.flush();
            }
            bufr.close();
            bufw.close();
        }
    
        // 将键盘录入的数据保存到一个文件中
        public static void method_2() throws IOException {
            BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
            BufferedWriter bufw = new BufferedWriter(new FileWriter("d.txt"));
    
            String line;
            while ((line = bufr.readLine()) != null) {
                if ("over".equals(line)) break;
                bufw.write(line);
                bufw.newLine();
                bufw.flush();
            }
            bufr.close();
            bufw.close();
        }
    
        // 将键盘录入的数据保存到一个文件中, 并可以自定义目标文件的字符编码.
        public static void method_3() throws IOException {
            BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
            BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("d.txt"), "utf-8"));
    
            String line;
            while ((line = bufr.readLine()) != null) {
                if ("exit".equals(line)) break;
                bufw.write(line);
                bufw.newLine();
                bufw.flush();
            }
            bufr.close();
            bufw.close();
        }
    
        // 练习1: 将一个图片文件中的数据存储到另外一个文件中
        public static void method_4() throws IOException {
            BufferedInputStream bufis = new BufferedInputStream(new FileInputStream("1.png"));
            BufferedOutputStream bufos = new BufferedOutputStream(new FileOutputStream("2.png"));
    
            int by;
            while ((by = bufis.read()) != -1) {
                bufos.write(by);
            }
            bufis.close();
            bufos.close();
        }
    
        // 练习2: 将一个文本文件的数据输出到控制台
        public static void method_5() throws IOException {
            BufferedReader bufr = new BufferedReader(new FileReader("s.txt"));
            BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(System.out));
    
            String line;
            while ((line = bufr.readLine()) != null) {
                bufw.write(line);
                bufw.newLine();
                bufw.flush();
            }
            bufr.close();
            bufw.close();
        }
    }
  • 相关阅读:
    将Nginx添加到windows服务中
    springboot使用redis管理session
    GIT常用命令
    阻止360、谷歌浏览器表单自动填充
    谈谈对Spring IOC的理解
    同一个Nginx服务器同一端口配置多个代理服务
    LeetCode 653. Two Sum IV
    109. Convert Sorted List to Binary Search Tree(根据有序链表构造平衡的二叉查找树)
    108. Convert Sorted Array to Binary Search Tree(从有序数组中构造平衡的BST)
    LeetCode 236. Lowest Common Ancestor of a Binary Tree(二叉树求两点LCA)
  • 原文地址:https://www.cnblogs.com/echo1937/p/6354323.html
Copyright © 2011-2022 走看看