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 +
                    '}';
        }
    }
}
目录
相关文章
|
13天前
|
存储 Java API
Java——Stream流详解
Stream流是JDK 8引入的概念,用于高效处理集合或数组数据。其API支持声明式编程,操作分为中间操作和终端操作。中间操作包括过滤、映射、排序等,可链式调用;终端操作则完成数据处理,如遍历、收集等。Stream流简化了集合与数组的操作,提升了代码的简洁性
36 11
Java——Stream流详解
|
3月前
|
存储 缓存 Oracle
可能是最漂亮的Java I/O流详解
大家有什么思路吗?评论区一起讨论讨论。我需要使用 Java 逐行读取大约 5-6 GB 的大型文本文件。我怎样才能快速完成此操作?最高赞的回答是叫Peter Lawrey的老哥回答的。大家好,我是南哥。一个Java学习与进阶的领路人,今天指南的是Java I/O流,跟着南哥我们一起在Java之路上成长。本文收录在我开源的《Java学习进阶指南》中,涵盖了想要学习Java、成为更好的Java选手都在偷偷看的核心知识、面试重点。
100 1
可能是最漂亮的Java I/O流详解
|
5月前
|
Java 数据处理
|
5月前
|
Java API
Java中的流
Java中的流
21 0
Java中的流
|
5月前
|
Java
Java输入输出:什么是Java中的流(Stream)?
Java输入输出:什么是Java中的流(Stream)?
37 1
|
5月前
|
SQL 存储 分布式计算
|
存储 编解码 Java
Java特殊操作流
Java特殊操作流
36 0
Java特殊操作流
|
存储 Java BI
Java流Strem 2
Java流Strem
42 0
|
存储 Java 关系型数据库
Java流Strem 1
Java流Strem
33 0