Java-流

简介:

转换流

package com.bilibili;

import java.io.*;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.Scanner;
import java.util.stream.Stream;

/**
 * @author WangYH
 * @version 2021.1.3
 * @date 2023/4/7 15:19
 */
public class Main {
   
    public static void main(String[] args) {
   
       try(OutputStreamWriter stream = new OutputStreamWriter(new FileOutputStream("hello.txt"))) {
   
           stream.write("Hello,world");
       } catch (FileNotFoundException e) {
   
           e.printStackTrace();
       } catch (IOException e) {
   
           e.printStackTrace();
       }
    }
}


打印流

package com.bilibili;

import java.io.*;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.Scanner;
import java.util.stream.Stream;

/**
 * @author WangYH
 * @version 2021.1.3
 * @date 2023/4/7 15:19
 */
public class Main {
   
    public static void main(String[] args) {
   

        try(PrintStream stream = new PrintStream(new FileOutputStream(new File("hello.txt")))) {
   
            stream.println("zxccvbnm");
        } catch (FileNotFoundException e) {
   
            e.printStackTrace();
        }
    }
}


数据流

package com.bilibili;

import java.io.*;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.Scanner;
import java.util.stream.Stream;

/**
 * @author WangYH
 * @version 2021.1.3
 * @date 2023/4/7 15:19
 */
public class Main {
   
    public static void main(String[] args) {
   

        //数据流不常用
      try(DataOutputStream dos = new DataOutputStream(new FileOutputStream("hello.txt"))) {
   
          //要注意编码格式问题 
          dos.writeInt(23541);
      } catch (FileNotFoundException e) {
   
          e.printStackTrace();
      } catch (IOException e) {
   
          e.printStackTrace();
      }
    }
}


对象流

package com.bilibili;

import java.io.*;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
import java.util.stream.Stream;

/**
 * @author WangYH
 * @version 2021.1.3
 * @date 2023/4/7 15:19
 */
public class Main {
   
    public static void main(String[] args) {
   

        try (ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("hello.txt"));
             ObjectInputStream in = new ObjectInputStream(new FileInputStream("hello.txt"))) {
   
            //将对象序列化存储指定路径,序列化不是纯文本
            List<String> list = new ArrayList<>(Arrays.asList("A", "B", "C"));
            out.writeObject(list);
            Object o = in.readObject();
            System.out.println(o);

            //如果想要自定义类可以被序列化存储,需要实现 Serializable 接口

            Student stu1 = new Student();
            stu1.name = "jack";
            stu1.age = 18;
            out.writeObject(stu1);


            System.out.println(in.readObject());

            //支持序列化操作的可以添加版本号信息,来区分不同版本,方便更新


            //在序列化时,如果我们不希望其保存某些信息,可以在修饰符前加上 transient

            //JDK内部源码中使用大量 transient 关键字,使得序列化时某些属性不会得到保存
            //节省数据空间及其缩小序列化时间


        } catch (FileNotFoundException e) {
   
            e.printStackTrace();
        } catch (IOException e) {
   
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
   
            e.printStackTrace();
        }
    }

    static class Student implements Serializable{
   

        private static final long serialVersionUID = 00002563;

        String name;
        transient int age;

        @Override
        public String toString() {
   
            return "Student{" +
                    "name='" + name + '\'' +
                    ", age=" + age +
                    '}';
        }
    }
}
目录
相关文章
|
Java
63.【Java I/O 操作】(一)
63.【Java I/O 操作】
64 0
|
4月前
|
存储 Java
java的对象详解
在Java中,对象是根据类模板实例化的内存实体,具有唯一标识符、属性及行为。通过`new`关键字实例化对象并用构造方法初始化。变量存储的是对象引用而非对象本身,属性描述对象状态,方法定义其行为。Java利用垃圾回收机制自动处理不再使用的对象内存回收,极大地简化了对象生命周期管理,同时对象具备封装、继承和多态性,促进了代码的重用与模块化设计。这使得Java程序更易于理解、维护和扩展。
237 94
|
3月前
|
Java
java时间相关
java时间相关
44 0
|
8月前
|
Java
Java的对象的产生与使用
Java的对象的产生与使用
|
8月前
|
存储 Java
Java的对象的比较
Java的对象的比较
|
8月前
|
存储 Java
Java中的实型数据及其应用
Java中的实型数据及其应用
114 0
|
8月前
|
SQL Java
java处理数据查看范围
java处理数据查看范围
|
8月前
|
Java API
Java中的流
Java中的流
28 0
Java中的流
|
Java
63.【Java I/O 操作】(三)
63.【Java I/O 操作】
44 0
|
8月前
|
Java
java8 转对象,Java8转Map,Java8转Llist
java8 转对象,Java8转Map,Java8转Llist
53 0