• 毕向东_Java基础视频教程第20天_IO流(15~17)


    第20天-15-IO流(打印输出流)

    打印输出流:PrintWriter与PrintStream

    两者的区别:Since JDK 1.4 it's possible to specify the character encoding for a PrintStream. Thus, the differences between PrintStream and PrintWriter are only about auto flushing behavior and that a PrintStream cannot wrap a Writer.

    package bxd;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.PrintWriter;
    
    /*
    打印输出流: 该流提供了打印方法, 可以将各种类型的数据都原样打印
    
    PrintStream构造函数可以接受的参数类型:
    1. File对象 File
    2. 字符串路径 String
    3. 字节输出流 OutputStream
    
    PrintWriter构造函数可以接受的参数类型(由于可接受的参数类型更多, 因而更常用一些):
    1. File对象 File
    2. 字符串路径 String
    3. 字节输出流 OutputStream
    4. 字符输出流 Writer
    */
    public class PrintStreamDemo {
        public static void main(String[] args) throws IOException {
    
            BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
            PrintWriter out = new PrintWriter(System.out, true);
    
            String line = null;
            while ((line = bufr.readLine()) != null) {
                if ("over".equals(line)) break;
                out.println(line.toUpperCase());
            }
            out.close();
            bufr.close();
        }
    }

    第20天-16-IO流(合并流-SequenceInputStream)

    package bxd;
    
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.SequenceInputStream;
    import java.util.Enumeration;
    import java.util.Vector;
    
    public class SequenceDemo {
    
        public static void main(String[] args) throws IOException {
    
            Vector<FileInputStream> v = new Vector<FileInputStream>();
            v.add(new FileInputStream("info.txt"));
            v.add(new FileInputStream("list.txt"));
            Enumeration<FileInputStream> en = v.elements();
    
            SequenceInputStream sis = new SequenceInputStream(en);
            FileOutputStream fos = new FileOutputStream("uni.txt");
    
            byte[] buf = new byte[1024];
            int len = 0;
            while ((len = sis.read(buf)) != -1) {
                fos.write(buf, 0, len);
            }
    
            fos.close();
            sis.close();
        }
    }

    第20天-17-IO流(切割文件)

    package bxd;
    
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.SequenceInputStream;
    import java.util.ArrayList;
    import java.util.Enumeration;
    import java.util.Iterator;
    
    public class SplitFile {
        public static void splitFile() throws IOException {
            FileInputStream fis = new FileInputStream("ts.png");
            FileOutputStream fos = null;
    
            byte[] bytes = new byte[600 * 1024];
            int len = 0;
            int count = 1;
            while ((len = fis.read(bytes)) != -1) {
                fos = new FileOutputStream((count++) + ".part");
                fos.write(bytes, 0, len);
                fos.close();
            }
            fis.close();
        }
    
        public static void merge() throws IOException {
    
            ArrayList<FileInputStream> al = new ArrayList<FileInputStream>();
            for (int x = 1; x <= 4; x++) al.add(new FileInputStream(x + ".part"));
    
            final Iterator<FileInputStream> it = al.iterator();
            Enumeration<FileInputStream> en = new Enumeration<FileInputStream>() {
                @Override
                public boolean hasMoreElements() {
                    return it.hasNext();
                }
    
                @Override
                public FileInputStream nextElement() {
                    return it.next();
                }
            };
    
            SequenceInputStream sis = new SequenceInputStream(en);
            FileOutputStream fos = new FileOutputStream("rets.png");
    
            byte[] bytes = new byte[1024];
            int len = 0;
            while ((len = sis.read(bytes)) != -1) fos.write(bytes, 0, len);
    
            fos.close();
            sis.close();
        }
    
        public static void main(String[] args) throws IOException {
            merge();
        }
    }
  • 相关阅读:
    govendor用法
    java.util.DualPivotQuickSort的实现
    windows注册表
    一道正则表达式题目
    JDK10、JDK11、JDK12新特性
    初夏清晨有所思
    Java 9新特性
    sklearn聚类评价指标
    沉浸式和全局式
    [抄]外部奖励对内在动机的侵蚀
  • 原文地址:https://www.cnblogs.com/echo1937/p/6366534.html
Copyright © 2020-2023  润新知