金三银四前,一个资深Java程序员从码农到技术咖的进阶之路Java IO流

今天系统的学习了 Java IO 这部分的知识,把一些之前没有用过的,或者忘记的方法和类重新学了一下。怕自己睡一觉把今天学的忘完了QaQ。所以,不得已写一下博客

IO概述

package com.coder.com;

import java.io.*;
import java.nio.charset.StandardCharsets;

public class Demo01 {
    /**
     * IO流概述
     * 可以将数据传输的操作看成一种数据的流动,按照流动的方向可以分为输入Input和输出Output
     * Java中的IO操作主要指的是 java.io包下的一些常用类的使用, 通过这些类可以对数据进行读取(输入流)和写出(输出流)想学习交流HashMap,nginx、dubbo、Spring MVC,分布式、高性能高可用、MySQL,redis、jvm、多线程、netty、kafka、的加尉xin(同英):1253431195 扩列获取资料学习,无工作经验不要加哦!
     * 

* IO流分类: * 按照方向: * - 输入流 * - 输出流 * 按照数据类型: * - 字节流 * -输入 InputStream * -输出 OutputStream * - 字符流 * -输入 Reader * -输出 Writer * 一切皆字节: * 计算机中的任何数据都是以二进制形式存储的 * 传输时也是以二进制的形式传输的 *

* @param args */
public static void main(String[] args) throws IOException { //字节流 OutputStream os = new FileOutputStream("E:\\a.txt", true); os.write(65); byte[] bytes = {66, 67, 68}; os.write(bytes, 1, 2); os.write("你好,世界".getBytes(StandardCharsets.UTF_8)); os.close(); InputStream is = new FileInputStream("E:\\a.txt"); bytes = new byte[1024]; int len = is.read(bytes); System.out.println("new String(bytes, 0, len) = " + new String(bytes, 0, len)); is.close(); } }

字节输出流

方法:

void write(int b)
void write(byte b[])
void write(byte b[], int off, int len)
FileOutputStream
void flush()
void close()

常用子类:

FileOutputStream(File file, boolean append)
BufferedOutputStream(OutputStream out)
ObjectOutputStream(OutputStream out)
PrintStream(boolean autoFlush, OutputStream out)

字符流

package com.coder.com;

import java.io.*;

public class Demo02 {
    public static void main(String[] args) throws IOException {
        Writer writer = new FileWriter("E:\\b.txt");
        writer.write("你好,世界,");
        writer.append("你好,Java").append("你好,Golang");
        writer.close();
        Reader reader = new FileReader("E:\\b.txt");
        char[] chars = new char[1024];
        int len = reader.read(chars);
        String s = new String(chars, 0, len);
        System.out.println("content = " + s);
        reader.close();
    }
}

转换流

package com.coder.com;

import java.io.*;

public class Demo03 {
    /**
     * 转换流
     * 字节流 装饰为 字符流 :使用装饰着设计模式
     * @param args
     */
    public static void main(String[] args) throws IOException {
        FileInputStream fis = new FileInputStream("E:\\a.txt");
        //param1 要转换的字节流
        //param2 指定编码名称
        InputStreamReader isr = new InputStreamReader(fis, "UTF-8");
        char[] buffs = new char[1024];
        int len = isr.read(buffs);
        for (int i = 0; i < len; i++) {
            System.out.print(buffs[i]);
        }
        isr.close();
        fis.close();
    }
}
打印流

package com.coder.com;

import java.io.IOException;
import java.io.PrintStream;
import java.io.PrintWriter;
public class Demo04 {
    /**
     * 打印流
     * @param args
     */
    public static void main(String[] args) throws IOException {
        PrintStream ps = new PrintStream("E:\\c.txt");
        ps.println("你好,世界");
        ps.println("你好,Java");
        ps.println("你好, Golang");
        ps.close();
        PrintWriter pw = new PrintWriter("E:\\c.txt");
        pw.println("你好Vue");
        pw.println("你好SpringBoot");
        pw.close();
    }
}

Properties

package com.coder.com;

import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Properties;

public class Demo05 {
    public static void main(String[] args) throws IOException {
//        Properties properties = new Properties();
//        properties.setProperty("name", "王令");
//        properties.setProperty("age", "20");
//        properties.setProperty("gender", "男");
//        properties.store(new FileWriter("E:\\d.properties"), "个人信息");
        Properties properties = new Properties();
        properties.load(new FileReader("E:\\d.properties"));
        System.out.println("name = " + properties.getProperty("name"));
        System.out.println("age = " + properties.getProperty("age"));
        System.out.println("gender = " + properties.getProperty("gender"));
    }
}

序列化 反 序列化

package com.coder.com;

import java.io.*;
import java.util.ArrayList;
import java.util.List;

public class Demo06 {
    /**
     * 序列化 反 序列化
     *
     * @param args
     */
    public static void main(String[] args) throws IOException, ClassNotFoundException {
//        Person wl = new Person("王令", 21, "男");
//        ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("E:\\person"));
//        oos.writeObject(wl);
//        oos.close();
//        ObjectInputStream ois = new ObjectInputStream(new FileInputStream("E:\\person"));
//        Person wl = (Person) ois.readObject();
//        System.out.println("wl = " + wl);
//        ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("E:\\list_person"));
//        List people = new ArrayList<>();
//        people.add(new Person("张三", 20, "男"));
//        people.add(new Person("李四", 21, "女"));
//        people.add(new Person("王五", 22, "男"));
//        oos.writeObject(people);
//        oos.close();
        ObjectInputStream ois = new ObjectInputStream(new FileInputStream("E:\\list_person"));
        List<Person> people = (List<Person>) ois.readObject();
        for (Person person : people) {
            System.out.println(person);
        }
    }
}

class Person implements Serializable {
    private String name;
    private Integer age;
    private String gender;

    public Person() {
    }

    public Person(String name, Integer age, String gender) {
        this.name = name;
        this.age = age;
        this.gender = gender;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    @Override
    public String toString() {
        return "Person{" +
                "name=‘" + name + ‘\‘‘ +
                ", age=" + age +
                ", gender=‘" + gender + ‘\‘‘ +};
    }
}

你可能感兴趣的:(java,kafka,redis,spring,架构)