1. 程式人生 > 遊戲 >《英雄連》新作或於明日公佈 官方直播已開啟倒計時

《英雄連》新作或於明日公佈 官方直播已開啟倒計時

今天系統的學習了 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包下的一些常用類的使用, 通過這些類可以對資料進行讀取(輸入流)和寫出(輸出流)
     * <p>
     * IO流分類:
     * 按照方向:
     * - 輸入流
     * - 輸出流
     * 按照資料型別:
     * - 位元組流
     * -輸入 InputStream
     * -輸出 OutputStream
     * - 字元流
     * -輸入 Reader
     * -輸出 Writer
     * 一切皆位元組:
     * 計算機中的任何資料都是以二進位制形式儲存的
     * 傳輸時也是以二進位制的形式傳輸的
     *</p>
     * @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<Person> 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 + '\'' +
                '}';
    }
}
掙錢養媳婦兒^.^